Asp.net mvc MVC显示错误消息
我试图找到一种方法,将错误消息从我的控制器传递回我的视图Asp.net mvc MVC显示错误消息,asp.net-mvc,wcf,Asp.net Mvc,Wcf,我试图找到一种方法,将错误消息从我的控制器传递回我的视图 public ActionResult Index() { ViewBag.splittingFileMessage = "Splitting File..."; ViewBag.startBatchMessage = "Start Batch Processing : "; return View(); } [HttpPost] public Ac
public ActionResult Index()
{
ViewBag.splittingFileMessage = "Splitting File...";
ViewBag.startBatchMessage = "Start Batch Processing : ";
return View();
}
[HttpPost]
public ActionResult Index(HttpPostedFileBase file)
{
var numberRecordsPerFile = int.Parse(ConfigurationManager.AppSettings["NumberRecordsPerFile"]);
var inputFileFolder = ConfigurationManager.AppSettings["InputFileFolder"];
var batchSplitterClient = new SplitterServiceClient();
var batchSplitterResponse =
batchSplitterClient.SplitFile(new BatchSplitterRequest
{
FilePath = inputFileFolder,
NumberOfRecordsPerFile = numberRecordsPerFile
});
var numberOfMessages = batchSplitterResponse.NumberOfMessages;
if (batchSplitterResponse.Result.ResultCode == 200)
{
return RedirectToAction("Progress");
}
else
{
ViewBag.error = "test error";
return RedirectToAction("Index");
}
}
因此,您可以看到,在我的Httppost方法中,我试图设置一条错误消息,即ViewBag.error,如果它发生在我的WCF调用中
但在我看来,在初始负载上,这当然还并没有设置
我有我的观点
<div class="errors">
<%: ViewBag.error %>
</div>
用户HandleErrorAttribute和错误页或验证错误的Elmah添加到Modelstate并使用错误页查找验证错误并显示
如果它回答了您的问题,请在左侧勾选右标记,使其得到回答尝试将其转换为字符串
<div class="errors">
<%: (string)ViewBag.error %>
</div>
或ViewBag.error.ToString()
操作方法级别的HandleError属性
[HandleError(View = "Error")]
public ActionResult Index()
{
ViewBag.Message = "Welcome to ASP.NET MVC!";
int u = Convert.ToInt32("");// Error line
return View();
}
在全局级别定义HandleError属性
我们还可以通过在Application_Start事件中的global.asax中注册HandleError属性,在全局级别应用该属性
范例
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute(), 2); //by default added
filters.Add(new HandleErrorAttribute
{
View = "Error"
}, 1);
}
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
}
错误页
@model System.Web.Mvc.HandleErrorInfo
@{
ViewBag.Title = "Error";
}
<h2>
Sorry, an error occurred while processing your request.
<br />
Error :
</h2>
<p>
@Model.Exception
</p>
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute(), 2); //by default added
filters.Add(new HandleErrorAttribute
{
View = "Error"
}, 1);
}
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
}
@model System.Web.Mvc.HandleErrorInfo
@{
ViewBag.Title = "Error";
}
<h2>
Sorry, an error occurred while processing your request.
<br />
Error :
</h2>
<p>
@Model.Exception
</p>
[HandleError(ExceptionType = typeof(ApplicationException), View = "Error")]
public ActionResult Index()
{
ViewBag.Message = "Welcome to ASP.NET MVC!";
int u = Convert.ToInt32(""); // Error line
return View();
}