ASP.Net MVC Маршрутизация URL QueryString - PullRequest
1 голос
/ 19 декабря 2008

Есть ли способ ссылки на другое представление, в котором отображаются результаты поиска без использования строки запроса? Например, я знаю, что могу сделать следующее:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Index(string txtOrderNumber)
{
    return RedirectToAction("OrderLookup", new { controller = "Report", id = txtOrderNumber });            
}

Но, допустим, я хочу использовать только гиперссылку (гиперссылка с номером заказа), а не публикацию в форме. Как я могу направить к представлению результатов без использования строки запроса? большое спасибо.

Ответы [ 2 ]

3 голосов
/ 22 декабря 2008

Переименуйте аргумент txtOrderNumber в id. Затем он будет выбран по маршруту по умолчанию. В качестве альтернативы, введите новый маршрут со значением txtOrderNumber в том же месте, что и значение id в маршруте по умолчанию, и ограничьте его для ответа только на этот контроллер.

0 голосов
/ 05 мая 2009

Эрик

При использовании webforms аргумент команды передается путем создания сообщения, а значение сохраняется в элементе управления (я полагаю, оно хранится в скрытом поле или в viewstate, который также является скрытым полем), но страница отправляет сообщение обратно. 1003 *

Если вы не хотите создавать пост и не используете строку запроса, единственное решение, которое я могу придумать, это сделать пост на той же странице, захватить идентификатор, сохранить его в TempData и затем сделать RedirectToAction. В контроллере просто используйте значение TempData, сохраненное на предыдущей странице.

При этом по-прежнему создается сообщение, но если пользователь обновит страницу, он не увидит сообщение «Переслать данные».

...