Model view controller a_Layout.cshtml是否可以拥有控制器

Model view controller a_Layout.cshtml是否可以拥有控制器,model-view-controller,c#-4.0,Model View Controller,C# 4.0,我想在_Layout.cshtml中添加来自数据库的导航。我已经为此创建了一个控制器,并将_Layout.cshtml创建为列表视图,但它不起作用 这是我的视图代码 @model IEnumerable<ITM_College.Models.field_tbl> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content=

我想在_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>

没有,但有多种解决方法:

1创建基本控制器类或另一个工具类,其中包含一些应在控制器之间共享的公用工具

2 PartialView和Html.RenderAction

public class SharedController : Controller
{
    ITMCollegeEntities db = new ITMCollegeEntities();
    // GET: Shared
    [ChildActionOnly]
    public ActionResult _Layout()
    {
        var li = db.field_tbl.ToList();
        return View(li);
    }
}
[ChildActionOnly]
public ActionResult Something(string p)
{
    var entities = repository.GetEntities(p);
    var partialViewModel = new PartialViewModel(entities);
    return PartialView(partialViewModel); 
}