_Layout.cshtml 可以有控制器吗
Can a _Layout.cshtml have a controller
我想从 _Layout.cshtml 中的数据库添加导航。我为此创建了一个控制器并将 _Layout.cshtml 创建为列表视图,但它不起作用
这是我的查看代码
@model IEnumerable<ITM_College.Models.field_tbl>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>@ViewBag.Title - My ASP.NET Application</title>
@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/modernizr")
</head>
<body>
<nav>
<ul>
@foreach (var item in Model)
{
<li> @Html.DisplayFor(modelItem => item.Field_Name)</li>
}
</ul>
</nav>
控制器代码
public class SharedController : Controller
{
ITMCollegeEntities db = new ITMCollegeEntities();
// GET: Shared
[ChildActionOnly]
public ActionResult _Layout()
{
var li = db.field_tbl.ToList();
return View(li);
}
}
没有,但是有多种方法可以解决:
1) 创建基本控制器 class 或其他工具 class,其中包含一些应在您的控制器之间共享的常用实用程序。
2) 局部视图和 Html.RenderAction
[ChildActionOnly]
public ActionResult Something(string p)
{
var entities = repository.GetEntities(p);
var partialViewModel = new PartialViewModel(entities);
return PartialView(partialViewModel);
}
我想从 _Layout.cshtml 中的数据库添加导航。我为此创建了一个控制器并将 _Layout.cshtml 创建为列表视图,但它不起作用
这是我的查看代码
@model IEnumerable<ITM_College.Models.field_tbl>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>@ViewBag.Title - My ASP.NET Application</title>
@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/modernizr")
</head>
<body>
<nav>
<ul>
@foreach (var item in Model)
{
<li> @Html.DisplayFor(modelItem => item.Field_Name)</li>
}
</ul>
</nav>
控制器代码
public class SharedController : Controller
{
ITMCollegeEntities db = new ITMCollegeEntities();
// GET: Shared
[ChildActionOnly]
public ActionResult _Layout()
{
var li = db.field_tbl.ToList();
return View(li);
}
}
没有,但是有多种方法可以解决:
1) 创建基本控制器 class 或其他工具 class,其中包含一些应在您的控制器之间共享的常用实用程序。
2) 局部视图和 Html.RenderAction
[ChildActionOnly]
public ActionResult Something(string p)
{
var entities = repository.GetEntities(p);
var partialViewModel = new PartialViewModel(entities);
return PartialView(partialViewModel);
}