Wat*_* v2 0 asp.net asp.net-mvc jquery asp.net-mvc-4
我有一个服务器端操作,如下所示:
namespace MyProduct.Presentation.Controllers
{
public class FooController : Controller
{
public ActionResult Delete(long[] fooIds)
{
throw new Exception("Something went wrong.");
}
}
}
Run Code Online (Sandbox Code Playgroud)
我从客户端向这个控制器发出一个ajax请求,如下所示:
var url = '/Foo/Delete';
$.ajax(url,
{
cache: false, async: false, type: 'POST',
data: JSON.stringify({ fooIds: fooIdsArray }), dataType: 'json',
contentType: 'application/json', traditional: true,
error: OnError, success: OnSuccess
});
function OnSuccess(data, textStatus, jqXHR) {
debugger;
}
function OnError(jqXHR, textStatus, errorThrown) {
debugger;
// Here, I want the text "Something went wrong",
// which I set as the Message property
// of my server side exception
}
Run Code Online (Sandbox Code Playgroud)
如何将文本集设置为服务器上引发Message的Exception对象的属性?
在这种情况下,客户端使用HTTP状态代码500接收HTML响应.因此,我在Fiddler中看到我的响应如下所示:
HTTP/1.1 500 Internal Server Error
Server: ASP.NET Development Server/10.0.0.0
Date: Wed, 11 Dec 2013 07:47:26 GMT
X-AspNet-Version: 4.0.30319
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Length: 10175
Connection: Close
<!DOCTYPE html>
<html>
<head>
<title>Could not delete category. This category has data associated with it. Please delete the associated data first.</title>
<meta name="viewport" content="width=device-width" />
<style>
body {font-family:"Verdana";font-weight:normal;font-size: .7em;color:black;}
p {font-family:"Verdana";font-weight:normal;color:black;margin-top: -5px}
b {font-family:"Verdana";font-weight:bold;color:black;margin-top: -5px}
H1 { font-family:"Verdana";font-weight:normal;font-size:18pt;color:red }
H2 { font-family:"Verdana";font-weight:normal;font-size:14pt;color:maroon }
pre {font-family:"Consolas","Lucida Console",Monospace;font-size:11pt;margin:0;padding:0.5em;line-height:14pt}
.marker {font-weight: bold; color: black;text-decoration: none;}
.version {color: gray;}
.error {margin-bottom: 10px;}
.expandable { text-decoration:underline; font-weight:bold; color:navy; cursor:hand; }
@media screen and (max-width: 639px) {
pre { width: 440px; overflow: auto; white-space: pre-wrap; word-wrap: break-word; }
}
@media screen and (max-width: 479px) {
pre { width: 280px; }
}
</style>
</head>
<body bgcolor="white">
<span><H1>Server Error in '/' Application.<hr width=100% size=1 color=silver></H1>
<h2> <i>Could not delete category. This category has data associated with it. Please delete the associated data first.</i> </h2></span>
<font face="Arial, Helvetica, Geneva, SunSans-Regular, sans-serif ">
<b> Description: </b>An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
<br><br>
<b> Exception Details: </b>System.Exception: Could not delete category. This category has data associated with it. Please delete the associated data first.<br><br>
<b>Source Error:</b> <br><br>
<table width=100% bgcolor="#ffffcc">
<tr>
<td>
<code><pre>
Line 66: }
Line 67:
<font color=red>Line 68: throw new Exception(errorMessage);
</font>Line 69: }
Line 70: catch</pre></code>
</td>
</tr>
</table>
<br>
<b> Source File: </b> C:\Sathyaish\Clients\ESQ\SVN\GlobalizationUI.Presentation\Controllers\CategoryController.cs<b> Line: </b> 68
<br><br>
<b>Stack Trace:</b> <br><br>
<table width=100% bgcolor="#ffffcc">
<tr>
<td>
<code><pre>
[Exception: Could not delete category. This category has data associated with it. Please delete the associated data first.]
MyProduct.Presentation.Controllers.CategoryController.Delete(Int64[] categoryIds) in yada yada yada
</pre></code>
</td>
</tr>
</table>
<br>
<hr width=100% size=1 color=silver>
<b>Version Information:</b> Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.18055
</font>
</body>
</html>
<!--
[Exception]: Could not delete category. This category has data associated with it. Please delete the associated data first.
at MyProduct.Presentation.Controllers.CategoryController.Delete(Int64[] categoryIds) in ...yada yada yada...
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以使用以下内容而不是抛出异常:
return new HttpStatusCodeResult(500, "Could not delete category. This category has data associated with it. Please delete the associated data first.");
Run Code Online (Sandbox Code Playgroud)
然后,您可以从textStatus变量访问该消息.
| 归档时间: |
|
| 查看次数: |
1477 次 |
| 最近记录: |