我第一次进入MVC4和Razor: 我正在尝试动态构建菜单:
@foreach (var menu in Model.Menu)
{
<li>
Html.ActionLink("@menu.Name", "@menu.View", "@menu.Controller");
</li>
}
Menu类有效,但输出不是文字,而是字符串:
Html.ActionLink(“主页”,“索引”,“主页”); Html.ActionLink( “菜单1”, “索引”,“Menu1”); Html.ActionLink(“Menu2”,“Index”,“Menu2”);
我需要更改输出实际文字?
编辑:我用它作为上述基础:
<li>@Html.ActionLink("Menu1", "Index", "Menu1")</li>
菜单类:
public class MenuItem
{
public string Name { get; set; }
public bool isActive { get; set; }
public string Controller { get; set; }
public string View { get; set; }
}
答案 0 :(得分: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)
答案 1 :(得分:1)
您需要在Html.ActionLink
之前添加@符号, 在结尾处删除分号:
@foreach (var menu in Model.Menu)
{
<li>
@Html.ActionLink(menu.Name, menu.View, menu.Controller)
</li>
}