2013-07-25 73 views
0

我浸入到MVC4和剃须刀的第一次: 我想建立动态的菜单:RAZOR语法生成菜单

@foreach (var menu in Model.Menu) 
{ 
<li> 
Html.ActionLink("@menu.Name", "@menu.View", "@menu.Controller"); 
</li> 
} 

Menu类的作品,但输出是不是文字,而是字符串:

Html.ActionLink("Home", "Index", "Home"); Html.ActionLink("Menu1", "Index", "Menu1"); Html.ActionLink("Menu2", "Index", "Menu2");

我需要更改输出实际文字?

编辑:我用这个作为上述的基础:

<li>@Html.ActionLink("Menu1", "Index", "Menu1")</li> 

Menu类:

public class MenuItem 
    { 
     public string Name { get; set; } 
     public bool isActive { get; set; } 
     public string Controller { get; set; } 
     public string View { get; set; } 
    } 
+0

活动是ActionName – Amit

回答

1

试试这个,因为你还没有Html.ActionLink之前设置@有人把它当作文本

@foreach (var menu in Model.Menu) 
{ 
    <li> 
     @Html.ActionLink((string)menu.Name, (string)menu.View, (string)menu.Controller) 
    </li> 
} 

编辑:只需将它投射到string或者您可以尝试

@LinkExtensions.ActionLink(Html, menu.Name, menu.View, menu.Controller) 
+0

使用您的示例中,我得到这个:CS1973:“系统。 Web.Mvc.HtmlHelper '没有适用的方法命名为'ActionLink' – callisto

+0

请参阅我在原始问题编辑 – callisto

+0

@callisto,我调整了答案,并请发布菜单类 – Satpal

1

您需要Html.ActionLink添加@符号在最后删除分号:

@foreach (var menu in Model.Menu) 
{ 
    <li> 
     @Html.ActionLink(menu.Name, menu.View, menu.Controller) 
    </li> 
} 
+0

出现此错误:CS1973:'System.Web.Mvc.HtmlHelper '没有适用的方法名为'ActionLink' – callisto

+0

您也不需要菜单var的 – NinjaNye

+0

前面的'@'符号,我仍然得到'ActionLink'相同的错误 – callisto