ASP.NET MVC 2 Controller参数值从发布的内容中截断

时间:2010-06-07 21:04:55

标签: rest asp.net-mvc-2

我有一个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帖子的最大内容限制?

1 个答案:

答案 0 :(得分:0)

我将回答我自己的问题。返回的html是由我无法控制的系统生成的。 html中有一个 元素,它将表单值分解为附加字段。那就是截断html。

为了解决这个问题,我不得不创建一个自定义模型绑定器来检查HttpContext的Request.Form集合。而不是在NameValueCollection中有2个元素,而是3,这使我找到了问题。

希望这可以帮助其他人尝试排除类似问题。