gpt4 book ai didi

c# - 确保 _Layout.cshtml 的 View 模型数据的最优雅方式

转载 作者:可可西里 更新时间:2023-11-01 08:17:08 25 4
gpt4 key购买 nike

在我的应用程序中,我有一些需要在每个页面上显示的基本用户信息(名称、个人资料 img)。目前,我只是将 _Layout.cshtml 页面中的模型设置为一个名为 ApplicationBaseModel 的类,整个应用程序中的所有其他 View 模型都必须继承自此类,并且每个 Action 都必须为基础模型设置适当的数据。

我不介意以这种方式进行简单的继承,事实上在每个操作方法中我都必须检索数据并将其存储在 View 模型中。在我看来,这不是一个非常优雅的解决方案。

有人对解决此问题的其他方法有任何想法吗?

最佳答案

我会创建一个 BaseController 来检索 Initialize() 覆盖中的数据并将其设置为 ViewBag 属性。现在从 BaseController 派生您创建的每个 Controller ,并在您的布局中使用 ViewBag 属性来访问您的用户数据。

public class BaseController : Controller
{
protected override void Initialize(System.Web.Routing.RequestContext requestContext)
{
base.Initialize(requestContext);

// retireve data
var data = new ApplicationBaseModel();

// set to viewbag
ViewBag.UserData = data;
}
}

这样您就不必从 ApplicationBaseModel 派生所有模型类。您可以将强类型 View 和用户数据作为 ViewBag 属性。

关于c# - 确保 _Layout.cshtml 的 View 模型数据的最优雅方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6267727/

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