Я пытаюсь вернуть другое представление, если условие выполнено. Я хочу сохранить модель, переданную в представление из действия.
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.
". Очевидно, Модель не была установлена?
Причина, по которой я делаю это таким образом, заключается в том, что я хочу максимально упростить наименование представления. И мой URL выглядит так: /Global/Modules/Admin/Users/Create
. Это вернет представление «UsersCreate». Который работает. Но Модель либо пуста, либо равна нулю!
ОБНОВЛЕНИЕ
Фактически. Это просто поразило меня. Поведение правильное. Потому что я только возвращаю View. Действие никогда не выполняется. Действие Users выполняется, но возвращает представление UsersCreate. Как я могу сделать что-то вроде RedirectToAction без фактического перенаправления.