c# - 数据驱动的asp.net mvc布局

标签 c# asp.net-mvc razor asp.net-mvc-views asp.net-mvc-layout

我有一个 Controller 操作:

 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);
    }

和一个 View :

@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>

}

如何使用数据填充我的 View 和布局?

最佳答案

以下是更好的选择:

使用数据驱动信息创建部分 View

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

    return PartialView(model);
  }
}

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

在您的_Layout.cshtml中:

<html>
... etc

@Html.RenderAction("Createmenu", "layout");

... etc

@RenderBody();


... etc
</html>

关于c# - 数据驱动的asp.net mvc布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23372564/

相关文章:

c# - 在 C# 中为 Windows XP 制作 Vista 风格的应用程序

c# - 从 Windows Phone 7 访问 WiFi 信息

c# - 自定义字体 Monodevelop

c# - Azure 发布数据库第一个连接字符串不起作用

javascript - 如何使用 C# 验证 Microsoft MVP 个人资料链接是否有效?

c# - MVC 4 和 Razor 的扩展方法

c# - MVC3 : Overriding the Model values in HTTPPost action method

c# - Epicor 10 如何在 BPM 前后处理之间存储数据?

javascript - MVC 在哪里为我们的 cshtml 文件放置 js 引用?

asp.net-mvc - AsyncController 如何避免使用 ASP.NET 工作线程?