当我在控制器的方法中访问 ViewData 时,我能够以字典的形式分配值,即。
ViewData["message"]="this is a custom message";
但我遇到了一个我试图在 MVC 中处理异常的场景,这是我的代码:
public void OnException(ExceptionContext filterContext)
{
if (!filterContext.ExceptionHandled && (filterContext.Exception is ArgumentOutOfRangeException))
{
filterContext.Result = new ViewResult { ViewName = "Error", ViewData = };
filterContext.ExceptionHandled = true;
}
}
现在在处理异常时,我想向错误页面传递一条消息,因此尝试访问 ExceptionContext 的 Result 属性。现在
我的问题是为什么我不能在这里以类似于字典的格式为 ViewData 赋值
filterContext.Result = new ViewResult { ViewName = "Error", ViewData = };
这也是一个返回 ViewDataDictionary 对象的属性,我什么时候可以在 Controller 方法中分配一个值,例如ViewData["message"] = "argument exception error"; 为什么我不能在ViewResult 对象中做同样的事情。