0

我第一次涉足 MVC4 和 Razor:我正在尝试动态构建菜单:

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

Menu 类有效,但输出不是文字,而是字符串:

Html.ActionLink("首页", "索引", "首页"); Html.ActionLink("Menu1", "Index", "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; }
    }
4

2 回答 2

1

您需要在前面添加 @ 符号Html.ActionLink 在末尾删除分号:

@foreach (var menu in Model.Menu)
{
    <li>
        @Html.ActionLink(menu.Name, menu.View, menu.Controller)
    </li>
}
于 2013-07-25T11:35:28.317 回答
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)
于 2013-07-25T11:32:10.530 回答