从URL检索ActionLink参数

时间:2012-05-15 13:21:26

标签: asp.net .net asp.net-mvc-3 viewbag

我有以下内容:

@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值。

2 个答案:

答案 0 :(得分:1)

ViewBag不是来自网址。它来自控制器动作。如果要获取属于POST请求的查询字符串参数或参数,可以使用Request

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

答案 1 :(得分:0)

ViewBag允许您将数据从控制器共享到视图。

如果要使用URL中的数据来创建链接,则需要使用控制器操作的FormCollection(如果在控制器内构建链接)或直接使用HttpContext(可从视图)

System.Web.HttpContext.Current.Request.QueryString["Search"]