【问题标题】:Helpers and action links in ASP.net MVC 3ASP.net MVC 3 中的帮助程序和操作链接
【发布时间】:2013-04-16 21:45:03
【问题描述】:

所以我创建的助手遇到了一个奇怪的问题:

@if (Model != null)
{
    <ul>
    @foreach (var item in Model)
    {
        <li>
           @Html.ActionLink(item.name, "Map", "Home", new { id = item.id }, null)
        </li>
    }
    </ul>
}
else
{
    <p><strong>ATTN!!</strong> We could not find any locations.</p>
}

当渲染到视图中时,运行时抛出以下错误:

CS1973:“System.Web.Mvc.HtmlHelper”没有名为“ActionLink”的适用方法,但似乎具有该名称的扩展方法。扩展方法不能动态调度。考虑强制转换动态参数或调用扩展方法而不使用扩展方法语法。

这发生在我的操作链接上。

我看到其他部分使用动作链接,有些在动作链接周围带有 [],而有些则没有。我做错了什么?

【问题讨论】:

标签: asp.net-mvc-3 razor actionlink


【解决方案1】:

您必须将item.name 转换为字符串,顺便说一下,如果您不使用htmlAttributes 参数,请保留它而不是放入null 以获得更简洁的代码

【讨论】:

  • 在使用routeVaules时必须使用null作为htmlAttributes,否则第三个参数将被视为htmlAttributes
  • 哦,是的,ofc,与 item.name 混淆了,首先认为 routevalue 之前只有 2 个参数,我的错
猜你喜欢
  • 1970-01-01
  • 2012-04-11
  • 1970-01-01
  • 1970-01-01
  • 2014-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多