Asp.net mvc 4 Viewbag不';不存在
我试着这样做:Asp.net mvc 4 Viewbag不';不存在,asp.net-mvc-4,Asp.net Mvc 4,我试着这样做: var NewViewResult = new ViewResult { ViewName = "Error", ViewBag.error = "Error Here" }; 我犯了这两个错误 无效的初始值设定项成员声明符 当前上下文中不存在名称“ViewBag” 这是我的代码: public override void OnException(System.Web.Mvc.ExceptionContext filterContext) { if (filterC
var NewViewResult = new ViewResult { ViewName = "Error", ViewBag.error = "Error Here" };
我犯了这两个错误
- 无效的初始值设定项成员声明符
- 当前上下文中不存在名称“ViewBag”
public override void OnException(System.Web.Mvc.ExceptionContext filterContext)
{
if (filterContext.ExceptionHandled) return;
string actionName = filterContext.RouteData.Values["action"].ToString();
Type controllerType = filterContext.Controller.GetType();
var method = controllerType.GetMethod(actionName);
var returnType = method.ReturnType;
if (returnType.Equals(typeof(JsonResult))) if (filterContext.Exception is CustomException) filterContext.Result = new JsonResult() { Data = ((CustomException)filterContext.Exception).Type }; else filterContext.Result = new JsonResult() { Data = OurExceptionType.GeneralException };
else if (returnType.Equals(typeof(ActionResult)) || (returnType).IsSubclassOf(typeof(ActionResult))) filterContext.Result = new ViewResult { ViewName = "Error" ViewBag.error="SomeError" };
filterContext.ExceptionHandled = true;
}
ViewBag是一个动态属性,您不能在ViewResult中这样传递它 在ViewBag中设置如下值:
var NewViewResult = new ViewResult { ViewName = "Error" };
ViewBag.error = "Error Message";
var NewViewResult = new ViewResult { ViewName = "Error" };
在视图中,您只需访问它,而无需传入ViewResult
:
<span>@ViewBag.error</span>
但是,我如何传递它呢?您需要在具有ViewBag这样的ViewBag的键中设置一个值。error=“some text”并且它将在视图中不做任何操作就可用。我将一些文本设置为error并得到相同的错误,我尝试了var NewViewResult=NewViewResult{ViewName=“error”,error=“error Here”};如果此错误不包含ViewResult类中“error”的定义,则您不需要错误字段检查,只需在ViewResult中返回ViewName,并按照我在asnwer中显示的方式在ViewBag中设置错误文本,然后从ViewBag中访问它不在CustomExceptionAttribute In public override void OneException中(System.Web.Mvc.ExceptionContext筛选器上下文)