小编Gre*_*reg的帖子

处理ASP.NET MVC 3视图中的公共数据的方法

我正在努力寻找一个看起来非常简单的概念.如果我的ViewBag中有一个值供我的_Layout.cshtml使用,我该如何设置该值?

以下是我目前看到的最明显(对我而言)选项:

  1. 设置每个控制器中的值(不是DRY)
  2. 创建我自己的继承自Controller的控制器库,并在基类中设置值
  3. 在Global.asax.cs中设置值(感觉很脏)
  4. 创建一个ActionFilter来设置数据并在全局注册过滤器(也感觉不对)
  5. 在_ViewStart.cshtml中设置值(感觉非常错误,非常脏)

例如:

_Layout.cshtml


<!DOCTYPE html>
<html>
<head runat="server">
    <title>@ViewBag.Title</title>
</head>
<body>
    <div id="header">
       <h1>Welcome @ViewBag.UserName</h2>
    </div>
    <div id="content">
       @RenderBody()
    </div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

如果每个控制器都设置UserName值,那就不是非常干.如果我用CodeIgniter之类的东西解决这个问题,我只需要创建自己的基本控制器来处理这些常见项目,并采用我的快乐方式.ASP.NET MVC 3有更优选的选项吗?

asp.net asp.net-mvc controller asp.net-mvc-3

7
推荐指数
1
解决办法
1881
查看次数

标签 统计

asp.net ×1

asp.net-mvc ×1

asp.net-mvc-3 ×1

controller ×1