抓住Json POST异常

时间:2012-02-09 09:42:29

标签: c# json post

我有一个页面方法:

[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#)捕获此异常,而不是将其显示给客户端,但是在达到此方法之前会出现此错误。

我可以在哪里捕获此异常?

2 个答案:

答案 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>

它解决了我的问题,虽然它可能不是最好的解决方案