Asp.net mvc 3 ASP.net MVC 3中的帮助程序和操作链接

Asp.net mvc 3 ASP.net MVC 3中的帮助程序和操作链接,asp.net-mvc-3,razor,actionlink,Asp.net Mvc 3,Razor,Actionlink,因此,我与我创建的助手有一个奇怪的问题: @if (Model != null) { <ul> @foreach (var item in Model) { <li> @Html.ActionLink(item.name, "Map", "Home", new { id = item.id }, null) </li> } </ul> } else {

因此,我与我创建的助手有一个奇怪的问题:

@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>
}
@if(Model!=null)
{
    @foreach(模型中的var项目) {
  • @ActionLink(item.name,“Map”,“Home”,new{id=item.id},null)
  • }
} 其他的 { 收件人!!我们找不到任何位置

}
渲染到视图中时,在运行时引发以下错误:

CS1973:'System.Web.Mvc.HtmlHelper'没有名为'ActionLink'的适用方法,但似乎有一个同名的扩展方法。无法动态调度扩展方法。考虑在不使用扩展方法语法的情况下强制转换动态参数或调用扩展方法。 这发生在我的动作链接上


我见过其他部分使用动作链接,一些在动作链接周围有[],另一些没有out。我做错了什么?

如果不使用
htmlAttributes
参数,您必须将
item.name
转换为字符串,把它放在代码中,而不是将代码< >空> <代码> <代码>项目。名称< /代码>为字符串。字符串字符串的可能复制。必须使用<代码> null <代码> > <代码> HTMLATRATIOTES < /代码>使用<代码> RoutVauls< /Cord>。否则,第三个参数将考虑<代码> HTMLATAPETITS< <代码>哦,是的OFC,与item.name混淆,首先想到routevalue之前只有2个参数,我的错