数据驱动的asp.net mvc布局

本文关键字:mvc 布局 net asp 数据驱动 | 更新日期: 2023-09-27 18:01:01

我有一个控制器操作:

 public ActionResult Sub(int id)
    {
      SubPage_Table subpage_table = db.SubPage_Table.Single(s => s.PageID == id);
        if (subpage_table == null)
        {
            return HttpNotFound();
        }
        return View(subpage_table);
    }

和一个视图:

@model Name.Models.DB.SubPage_Table
@Html.Raw(HttpUtility.HtmlDecode(Model.PageContent))  

但我的布局需要强类型:

@model IEnumerable<Name.Models.DB.SubPage_Table> 
          @foreach (var item in Model)
          {@: <li> @Html.ActionLink((item.PageTitle), "Sub", new { id = item.PageID })</li>

}

如何用数据填充视图和布局?

数据驱动的asp.net mvc布局

以下是更好的选项:

使用数据驱动的信息创建局部视图

public LayoutController
{
  public ActionResult CreateMenu()
  {
    var model = db.getmenudata();
    return PartialView(model);
  }
}

然后Layout/Createmenu.cshtml只创建数据驱动的html。

在您的_Layout.chtml:中

<html>
... etc
@Html.RenderAction("Createmenu", "layout");
... etc
@RenderBody();

... etc
</html>