3Da*_*ave 1 cookies asp.net-mvc session post
我正在给MVC另一个镜头,我觉得我正在重新学习HTML格式.
所以,愚蠢的问题:在我的母版页的顶部,我有一个局部视图(或类似的 - 我正在使用字符串模板视图引擎,到目前为止我喜欢它),它显示一个小的登录表单(类似于NewEgg有什么),或者像是一样的消息
您已登录为(姓名).[简介] | [登出]
不幸的是,我有一个大脑抽筋,无法确定将数据(用户名,id)放入ViewData集合的最佳方法,而无需在每个控制器方法中明确指定它,如
public ActionResult Index()
{
ViewData["IsAuthenticated"] = Session["IsAuthenticated"];
ViewData["user.firstname"] = User.FirstName;
return View("login");
}
Run Code Online (Sandbox Code Playgroud)
不得不在整个地方进行复制,这非常烦人.我的下一个选择是创建一个名为PopulateCommonViewData()的方法,并从每个操作方法中调用它,但这似乎也很糟糕.
我在这里错过了什么吗?
从基本控制器派生控制器.然后将创建公共视图数据的方法移动到该基本控制器中的OnActionExecuting/OnActionExecuted覆盖.
public class BaseController : Controller
{
public override void OnActionExecuting( ActionExecutingContext filterContext )
{
ViewData["IsAuthenticated"] = Request.IsAuthenticated;
ViewData["user.firstname"] = User.FirstName;
}
}
public class MyController : BaseController // and you're done
{
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1869 次 |
| 最近记录: |