gpt4 book ai didi

Asp.net mvc razor - 将数据发送到主布局

转载 作者:行者123 更新时间:2023-12-02 15:31:37 25 4
gpt4 key购买 nike

我是 ASP.NET MVC 的新手。我创建了一个 asp.net mvc4 空应用程序并向其中添加了一个实体模型。我有一个布局页面,我想显示菜单类别、页眉、页脚 vb。但是如何将包含另一个实体对象(最后的帖子、类别、标签)的数据发送到布局页面?谢谢

最佳答案

如果您想将数据(我假设来自数据库)传递到布局 View ,您将面临这样一种情况:您的数据被传递到应用程序中的每个页面。所以我要做的是创建一个基本 Controller ,所有 Controller 都将从中继承:

public class BaseController : Controller
{
public LayoutModel model;

public BaseController()
{
// Here you will use some business logic to populate your Layout Model
// You might also consider placing this model into the cache to prevent constant fetching of data from the database on each page request.
model = _service.Populate();
ViewBag.LayoutModel = model;
}
}

如您所见,我使用基本 Controller 的构造函数来获取布局 View 所需的数据。我创建了一个名为 model 的属性,并使用了一些名为 Populate 的业务逻辑方法(您需要自己编写)来填充模型变量。然后我将模型放入 ViewBag 中。

一旦我进行了此设置,那么我在解决方案中创建的每个 Controller 都需要从基本 Controller 继承:

public class HomeController : BaseController
{
// Controller code here...
}

这意味着每个 Controller 现在都可以从基本 Controller 访问模型属性。

从这里,您可以在每个 View 上使用 ViewBag.LayoutModel,如下所示(在 View 顶部声明一个局部变量并将其转换为基础类型):

@{
LayoutModel MenuModel = ViewBag.LayoutModel;
}

然后像这样使用它:

@MenuModel.SomeProperty

这只是其中一种方法,但还有其他更简单/更复杂的方法。您需要自己做一些研究,看看哪种技术最适合您......

关于Asp.net mvc razor - 将数据发送到主布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17320999/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com