我有一个页面方法:
[WebMethod(false)]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static string AMethod(string someString)
{...}
当我通过Json POST
调用它并传递无效字符串时,例如:'
我收到以下错误:
{"Message":"Invalid object passed in, \u0027:\u0027 or \u0027}\u0027 expected. (22): [{\u0027someString\u0027: \u00272\u0027\u0027}]","StackTrace":"
我希望在服务器端(C#)捕获此异常,而不是将其显示给客户端,但是在达到此方法之前会出现此错误。
我可以在哪里捕获此异常?
答案 0 :(得分:0)
看起来你传递了无效的数据。
[{'someString': \u00272''}]
我不确定unicode unicode 00272是什么,但它可能不应该在那里。
看起来\ u00272无效,因此您可能会将数据发送为
[{'someString': '2''}]
这不是有效的,因为你需要逃避' (这应该通过使用JSON.stringify方法完成)。如果你不使用JSON.stringify,它可能不会向方法发送JSON - 使用Fiddler进行检查,但它可能只是发布data?like=this
。
答案 1 :(得分:0)
我已成功在web.config中捕获此异常:
<system.web>
<customErrors mode="On" defaultRedirect="Home.aspx">
<error statusCode="500" redirect="Home.aspx"/>
</customErrors>
</system.web>
它解决了我的问题,虽然它可能不是最好的解决方案