2012-05-15 3 views
0

я следующее:параметр Получение ActionLink из URL

@Html.ActionLink("Customer Number", "Search", new { Search = ViewBag.Search, q = ViewBag.q, sortOrder = ViewBag.CustomerNoSortParm, }) 

С обоими свойствами viewbag, поступающих из URL:

http://localhost:51488/Home/Search?Search=Postcode&q=test&sortOrder=CustomerNo 

Однако URL-произведенная:

http://localhost:51488/Home/Search?sortOrder=CustomerNo 

с он не подбирает ни одно из значений ViewBag.

ответ

1

ViewBag не принадлежит URL-адресу. Это происходит от действия контроллера. Если вы хотите получать параметры строки запроса или параметры, которые были частью POST просить можно использовать Request:

@Html.ActionLink(
    "Customer Number", 
    "Search", 
    new { 
     Search = Request["Search"], 
     q = Request["q"], 
     sortOrder = Request["CustomerNoSortParm"] 
    } 
) 
+0

Да. За работой. Благодаря! – stats101

+0

В любом случае я могу получить метку «Номер клиента» непосредственно из модели. Аналогично @ Html.LabelFor (model => model.CustomerNumber)? – stats101

+0

Вы не можете использовать '@ Model.CustomerNumber'? –

0

ViewBag позволяет совместно использовать данные из контроллера в представление.

Если вы хотите использовать данные из URL-адреса, чтобы создать свою ссылку, вам необходимо будет использовать форму FormCollection для действия вашего контроллера (если вы создаете ссылку внутри контроллера) или напрямую использовать HttpContext (доступный из вид)

System.Web.HttpContext.Current.Request.QueryString["Search"] 
Смежные вопросы