Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 大量POST请求的问题_C#_Json_Ajax_Asp.net Mvc - Fatal编程技术网

C# 大量POST请求的问题

C# 大量POST请求的问题,c#,json,ajax,asp.net-mvc,C#,Json,Ajax,Asp.net Mvc,我在AJAX请求中遇到了一个bug,这个bug只发生在大型JSON对象中 我使用的是画布上的JSON对象,上面有图形(矩形、线条、自由画等)。当用户完成并希望保存它以备以后使用时,他们会保存它并进行其他业务。当绘图非常大时,我遇到了一个问题,即POST不会命中控制器方法 我已将多个配置设置添加到我的web.config中,包括: <system.web.extensions> <scripting> <webServices> <

我在AJAX请求中遇到了一个bug,这个bug只发生在大型JSON对象中

我使用的是画布上的JSON对象,上面有图形(矩形、线条、自由画等)。当用户完成并希望保存它以备以后使用时,他们会保存它并进行其他业务。当绘图非常大时,我遇到了一个问题,即POST不会命中控制器方法

我已将多个配置设置添加到我的web.config中,包括:

<system.web.extensions>
  <scripting>
    <webServices>
      <jsonSerialization maxJsonLength="86753090" />
    </webServices>
  </scripting>
</system.web.extensions>
<security>
  <requestFiltering>
    <requestLimits maxAllowedContentLength="1073741824" />
  </requestFiltering>
</security>
<httpRuntime maxRequestLength="1048576"/>
方法的标题为:

[HttpPost]
public ActionResult SaveSketch(int id, string jsonString)
任何帮助都将不胜感激。 只有500英镑

张贴
500(内部服务器错误)发送@jquery-1.9.1.js:8526
jQuery.extend.ajax@jQuery-1.9.1.js:7978
(匿名函数)@70:147
jQuery.event.dispatch@jQuery-1.9.1.js:3074

elemData.handle@jquery-1.9.1.js:2750

我相信您遇到了这个问题,因为您的参数不正确。您正在从浏览器发送一个对象,但控制器方法需要两个属性

尝试创建一个类:

public class MyClass
{
  public int id {get;set;}
  public string jsonString {get;set;
}
然后将控制器方法更新为如下所示:

[HttpPost]
public ActionResult SaveSketch(MyClass myClass)

我相信您遇到这个问题是因为您的参数不正确。您正在从浏览器发送一个对象,但控制器方法需要两个属性

尝试创建一个类:

public class MyClass
{
  public int id {get;set;}
  public string jsonString {get;set;
}
然后将控制器方法更新为如下所示:

[HttpPost]
public ActionResult SaveSketch(MyClass myClass)

因此,问题似乎在于项目没有遵守我在配置文件中设置的maxJsonLength值

可在以下站点找到解决方法:

因此,问题似乎在于项目没有考虑我在配置文件中设置的maxJsonLength值

可在以下站点找到解决方法:

您的浏览器控制台中是否有任何错误?现在有问题了,您应该能够通过检查浏览器中的Ajax请求来获得更好的信息。您应该确切地看到服务器返回给您的内容。使用visual studio断点!500错误意味着您的代码崩溃方法的第一行有一个断点;在它出现之前,它正在崩溃。您的浏览器控制台中是否有任何错误?错误现在是问题所在。您应该能够通过检查浏览器中的Ajax请求来获得更好的信息。您应该确切地看到服务器返回给您的内容。使用visual studio断点!500错误意味着您的代码崩溃方法的第一行有一个断点;它在它之前就被打破了。这绝对是一个更好的方法;我会照样保留的。但不幸的是,这并没有解决问题,我认为您不需要执行data:JSON.stringify({id:$(“#currLevelId”).val(),jsonString:jsonString});您应该能够这样做:data:{id:$(“#currLevelId”).val(),jsonString:jsonString}如果您仍然收到500错误,那么序列化很可能与控制器期望的不匹配。如果在Conrtoller方法的第一行上放置断点,它会被命中吗?不会,但我在global.asax中放置了一个应用程序错误捕获,出现的错误是:“使用JSON JavaScriptSerializer进行序列化或反序列化时出错。字符串的长度超过了maxJsonLength属性上设置的值。”因此,出于某种原因,它不尊重我在.config文件中设置的值;我会照样保留的。但不幸的是,这并没有解决问题,我认为您不需要执行data:JSON.stringify({id:$(“#currLevelId”).val(),jsonString:jsonString});您应该能够这样做:data:{id:$(“#currLevelId”).val(),jsonString:jsonString}如果您仍然收到500错误,那么序列化很可能与控制器期望的不匹配。如果在Conrtoller方法的第一行上放置断点,它会被命中吗?不会,但我在global.asax中放置了一个应用程序错误捕获,出现的错误是:“使用JSON JavaScriptSerializer进行序列化或反序列化时出错。字符串的长度超过了maxJsonLength属性上设置的值。”因此,出于某种原因,它没有考虑我在.config文件中设置的值。