我有一个ASP.NET MVC 2应用程序(.NET 4),它带有两个参数的HTTP帖子。第二个参数是一大块html。控制器动作如下所示。
[ValidateInput(false)]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult TriangleUpdate(string userId, string html)
{
var user = _udRep.GetUserInfoForUser(userId);
if (user == null)
{
return Json(new { Result = "INVALID_USER" });
}
System.Diagnostics.Debug.Write(html);
if (!EnsureValidTriangleHTML(html))
{
return Json(new { Result = "INVALID_HTML" });
}
//other code here
}
当发布到此方法的html相当大,大约300 KB时,html参数的内容将被截断。 System.Diagnostics.Debug.Write(html)仅输出传入的一些内容输入。
Fiddler以“Content-Length:366050”标题显示完整的'application / x-www-form-urlencoded'帖子。但是在服务器端,html参数中只有部分内容可用。
是否有某种缓冲区未被刷新或HTTP帖子的最大内容限制?
答案 0 :(得分:0)
我将回答我自己的问题。返回的html是由我无法控制的系统生成的。 html中有一个
元素,它将表单值分解为附加字段。那就是截断html。
为了解决这个问题,我不得不创建一个自定义模型绑定器来检查HttpContext的Request.Form集合。而不是在NameValueCollection中有2个元素,而是3,这使我找到了问题。
希望这可以帮助其他人尝试排除类似问题。