我是ASP MVC的新手。我正在尝试做的是将数据从数据库传递到应用程序的布局视图。

我的应用程序有一个布局,其中有一个侧边栏。它包含发布的最新新闻/通知的标题。我希望该列表可用于该应用程序的所有页面。侧栏在所有页面中均可见。我通过定义一个单独的独立视图(即没有控制器的视图)来实现这一点。

应用程序的所有页面都继承此视图。我在布局中使用了“ RenderBody”方法。现在,由于布局没有任何控制器,我如何将数据从数据库传递到此共享的_Layout.cshtml页面。

最佳答案

您可以编写一个控制器基类来处理这种情况。然后在布局中使用Html.Action来请求新闻数据。这样,您可以通过覆盖操作来扩展或更改每个控制器中的通知。

public class BaseController : Controller
{
    public virtual ActionResult News()
    {
        return PartialView("_MyPartial");
    }
}

public class HomeController : BaseController
{
    public ActionResult Index()
    {
        return View();
    }
}


在_Layout.cshtml中的某处:

@Html.Action("News")


话虽如此,我没有发现为共享操作编码一个独立的控制器也没有错。 SharedController。

关于c# - 如何将数据传递到ASP MVC中的共享 View ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23339196/

10-13 06:24
查看更多