gpt4 book ai didi

asp.net-mvc-4 - 将数据传递到所有页面通用的布局

转载 作者:行者123 更新时间:2023-12-03 04:38:46 26 4
gpt4 key购买 nike

我有一个带有布局页面的网站。然而,这个布局页面包含所有页面模型都必须提供的数据,例如页面标题、页面名称以及我们实际所在的位置,以便我执行一些操作。此外,每个页面都有自己的 View 模型属性。

我该怎么做?键入布局似乎是个坏主意,但如何传递这些信息?

最佳答案

如果您需要将相同的属性传递给每个页面,那么创建一个供所有 View 模型使用的基本 View 模型将是明智的选择。然后,您的布局页面可以采用此基本模型。

如果此数据背后需要逻辑,则应将其放入所有 Controller 都使用的基本 Controller 中。

您可以做很多事情,重要的方法是不要在多个地方重复相同的代码。

编辑:根据下面的评论进行更新

这是一个演示该概念的简单示例。

创建所有 View 模型都将继承的基本 View 模型。

public abstract class ViewModelBase
{
public string Name { get; set; }
}

public class HomeViewModel : ViewModelBase
{
}

您的布局页面可以将此作为模型。

@model ViewModelBase
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Test</title>
</head>
<body>
<header>
Hello @Model.Name
</header>
<div>
@this.RenderBody()
</div>
</body>
</html>

最后在action方法中设置数据。

public class HomeController
{
public ActionResult Index()
{
return this.View(new HomeViewModel { Name = "Bacon" });
}
}

关于asp.net-mvc-4 - 将数据传递到所有页面通用的布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13225315/

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