【发布时间】:2014-06-30 13:48:41
【问题描述】:
如果满足条件,我会尝试返回不同的视图。我想保留从操作传递到视图中的模型。
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
var subAction = filterContext.RequestContext.RouteData.Values["subaction"].ToString();
var action = filterContext.RequestContext.RouteData.Values["action"].ToString();
if (!string.IsNullOrEmpty(subAction))
{
var view = (ViewResultBase) (filterContext.Result);
filterContext.Result = View(action + subAction, view.ViewData.Model);
}
base.OnActionExecuting(filterContext);
}
这样做时,我得到一个“Object reference not set to an instance of an object.”。很明显,Model 还没设置好?
我这样做的原因是我想让视图的命名尽可能简单。我的 URL 如下所示:/Global/Modules/Admin/Users/Create。这将返回视图“UsersCreate”。哪个有效。但是模型要么为空,要么为空!
更新
其实。它刚刚击中了我。行为是正确的。因为我只返回一个视图。该操作永远不会执行。用户操作被执行,但返回视图用户创建。我怎样才能做一个 RedirectToAction 有点事情,而不实际重定向。
【问题讨论】:
标签: asp.net-mvc viewmodel