为什么MVC actionlink无法正确呈现?

时间:2013-02-04 13:19:24

标签: html asp.net-mvc html-helper html.actionlink

我正在传递这个:

<%: Html.ActionLink("Edit", "EditCRMRequest", "CRM", new { Id = item.Id })%>

我正在使用浏览器:

http://something.com/CRM/EditCRMRequest?Length=3

错误代码:

  

参数字典包含参数“Id”的空条目   方法的非可空类型'System.Int32'   'System.Web.Mvc.ActionResult EditCRMRequest(Int32)'in   'ApricaCRMEvent.Controllers.CRM.CRMController'。可选参数   必须是引用类型,可空类型,或声明为   可选参数。参数名称:参数

如果我在浏览器中明确地写这个,它可以正常工作:

http://something.com/CRM/EditCRMRequest?Id=3

1 个答案:

答案 0 :(得分:5)

正确的方式:

<%: Html.ActionLink("Edit", "EditCRMRequest", "CRM", new { Id = item.Id },null)%>

没有这样的重载方法:

Html.ActionLink(string text, string action, string controller, object routeValues)

如果你这样写,Lenght=3代表“CRM”。控制器名称表现为routeValues

正确的方法是:

Html.ActionLink(string text, string action, string controller, object routeValues, object htmlAttributes)