【问题标题】:Why is MVC actionlink not rendering correctly?为什么 MVC actionlink 不能正确呈现?
【发布时间】:2013-01-19 04:56:02
【问题描述】:

我正在传递这个:

<%: 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)' 在 'ApricaCRMEvent.Controllers.CRM.CRMController'。可选参数 必须是引用类型、可空类型或声明为 可选参数。参数名称:参数

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

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

【问题讨论】:

  • 就像下面提到的答案一样,如果您查看正在使用的方法重载,则它需要 htmlAttributes 而不是 routeValues。这就是您在查询字符串中获得 ?length=3 的原因。

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


【解决方案1】:

正确方法:

<%: 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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-29
    • 2017-08-03
    • 2021-08-20
    • 1970-01-01
    • 2015-10-08
    • 2023-02-08
    • 1970-01-01
    相关资源
    最近更新 更多