2013-02-05 104 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