2013-02-05 78 views
16

我需要在View中使用MVC和Razor设置查询字符串。@ Html.ActionLink如何添加查询字符串

这里我的代码

Controller: Home 
ActionResult: Daily 
QueryString: DateForLookUp 

@Html.ActionLink("Next Day", "Daily", "Home", new { @DateForLookUp = @Model.AddOneDay() }) 

结果的那一刻是

http://mysite.com/Home/Daily?lenght=4 

应该

http://mysite.com/Home/Daily?DateForLookUp=01/01/2014 

我做错了的是什么?

+0

同样是这样的:http://stackoverflow.com/questions/14687638/why-is-mvc-actionlink-not-rendering-correctly/14687749# 14687749 –

回答

22

Html.ActionLink有很多overloads

而且您正在使用将您的控制器名称"Home"解释为路由值的wrong overload

一个正确overload/sysntax的是:

@Html.ActionLink(
    "Next Day", //linkText 
    "Daily", //actionName 
    "Home", //controllerName 
    new { @DateForLookUp = @Model.AddOneDay() }, //routeValues 
    null //htmlAttributes 
) 
+2

这个问题解决了@ Html.ActionLink(“Next Day”,“Daily”,new {@DateForLookUp = @ Model.AddOneDay()}) – GibboK

+0

@GibboK是的,如果不需要指定控制器那么过载也可以工作。 – nemesv