Joh*_*ohn 30 c# asp.net-mvc actionresult asp.net-mvc-3
MVC App,客户端向服务器发出请求,发生错误,要将msg发送回客户端.尝试了HttpStatusCodeResult,但只返回404没有消息,我需要将错误的详细信息发送回客户端.
public ActionResult GetPLUAndDeptInfo(string authCode)
{
try
{
//code everything works fine
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return new HttpStatusCodeResult(404, "Error in cloud - GetPLUInfo" + ex.Message);
}
}
Run Code Online (Sandbox Code Playgroud)
Shy*_*yju 29
您需要向用户返回一个包含友好错误消息的视图
catch (Exception ex)
{
// to do :log error
return View("Error");
}
Run Code Online (Sandbox Code Playgroud)
您不应该向用户显示异常的内部详细信息(例如异常堆栈跟踪等).您应该将相关信息记录到错误日志中,以便您可以查看并解决问题.
如果您的请求是ajax请求,您可以返回带有正确状态标志的JSON响应,客户端可以评估该标记并执行进一步操作
[HttpPost]
public ActionResult Create(CustomerVM model)
{
try
{
//save customer
return Json(new { status="success",message="customer created"});
}
catch(Exception ex)
{
//to do: log error
return Json(new { status="error",message="error creating customer"});
}
}
Run Code Online (Sandbox Code Playgroud)
如果要在用户提交的表单中显示错误,可以使用ModelState.AddModelError方法以及类似的Html帮助程序方法Html.ValidationSummary,以他提交的形式向用户显示错误.
Mik*_*oud 21
一种方法是使用ModelState:
ModelState.AddModelError("", "Error in cloud - GetPLUInfo" + ex.Message);
Run Code Online (Sandbox Code Playgroud)
然后在视图上执行以下操作:
@Html.ValidationSummary()
Run Code Online (Sandbox Code Playgroud)
您希望显示错误的位置.如果没有错误,它将不会显示,但如果有,您将获得列出所有错误的部分.
Ale*_*eev 10
在Controller Action内部,您可以访问HttpContext.Response.您可以在此处设置响应状态,如下面的清单所示.
[HttpPost]
public ActionResult PostViaAjax()
{
var body = Request.BinaryRead(Request.TotalBytes);
var result = Content(JsonError(new Dictionary<string, string>()
{
{"err", "Some error!"}
}), "application/json; charset=utf-8");
HttpContext.Response.StatusCode = (int)HttpStatusCode.BadRequest;
return result;
}
Run Code Online (Sandbox Code Playgroud)
在您的视图中插入
@Html.ValidationMessage("Error")
Run Code Online (Sandbox Code Playgroud)
然后在模型中使用new之后在控制器中
var model = new yourmodel();
try{
[...]
}catch(Exception ex){
ModelState.AddModelError("Error", ex.Message);
return View(model);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
93493 次 |
| 最近记录: |