MVC App, client makes request to server, error happens, want to send the msg back to the client. Tried HttpStatusCodeResult but just returns a 404 with no message, I need the details of the error sent back to the client.
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);
}
}
You need to return a view which has a friendly error message to the user
catch (Exception ex)
{
// to do :log error
return View("Error");
}
You should not be showing the internal details of your exception(like exception stacktrace etc) to the user. You should be logging the relevant information to your error log so that you can go through it and fix the issue.
If your request is an ajax request, You may return a JSON response with a proper status flag which client can evaluate and do further actions
[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"});
}
}
If you want to show the error in the form user submitted, You may use ModelState.AddModelError
method along with the Html helper methods like Html.ValidationSummary
etc to show the error to the user in the form he submitted.