在视图中呈现在asp.nt mvc控制器中生成的html代码



我正在实现一个基于角色的菜单。我必须从数据库动态生成菜单。我有一个角色特征映射表,从中我可以获取映射到角色的特征。一旦我得到它,我必须with <ul> and <li>生成HTML菜单。我可以得到有关如何完成的建议吗?我的意思是在控制器中生成 HTML 脚本并将其渲染到相应的视图上。请帮忙。欢迎任何建议。

<ul id="menu">
  <li>
    @Html.ActionLink("Home", "Dashboard", "User")
  </li>
  <li>
    <a href="#"><span>User</span></a>
    <ul>
      <li>@Html.ActionLink("Create User", "CreateUser", "User")</li>
    </ul>
  </li>
  <li>
    <a href="#"><span>Report</span></a>
    <ul>
      <li>@Html.ActionLink("ABC Report", "ABC", "Report")</li>
      <li>@Html.ActionLink("User Report", "UserReport", "Report")</li>
    </ul>
  </li>
  <li>
    <a href="#"><span>XYZ</span></a>
    <ul>
      <li>@Html.ActionLink("XYZ1", "XYZ1", "XYZ")</li>
      <li>@Html.ActionLink("XYZ2", "XYZ2", "XYZ")</li>
      <li>@Html.ActionLink("XYZ3", "XYZ3", "XYZ")</li>
      <li>@Html.ActionLink("XYZ4", "XYZ4", "XYZ")</li>
    </ul>
  </li>                      
</ul>

在 HTML 上方,我必须在控制器中构建并呈现到视图。

我建议创建一个Menu类,如下所示

public class Menu
{
   public string Text {get;set;}
   public string Controller {get;set;}
   public string Action {get;set;}
}

然后在viewModel中添加类型为 List<Menu> 的属性MenuList,然后从数据库中动态填充控制器中的该集合

然后更改您的视图,如下所示

<a href="#"><span>XYZ</span></a>
<ul>
  @for(var menu in Model.MenuList)
  {
     <li>@Html.ActionLink(menu.Text, menu.Action, menu.Controller)</li>
  }
</ul>

最新更新