Значение параметра контроллера ASP.NET MVC 2, усеченное из того, что опубликовано - PullRequest
2 голосов
/ 08 июня 2010

У меня есть приложение 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 КБ, содержимое параметра html усекается. System.Diagnostics.Debug.Write (html) выводит только часть введенного содержимого.

Fiddler показывает полный пост application / x-www-form-urlencoded с заголовком «Content-Length: 366050». Однако на стороне сервера только часть контента доступна в параметре html.

Есть ли какой-то буфер не очищается или максимальный лимит содержимого для сообщений HTTP?

1 Ответ

0 голосов
/ 08 июня 2010

Я собираюсь ответить на мой собственный вопрос по этому вопросу. HTML, который был возвращен, был создан системой вне моего контроля. В html был элемент  , который разбивал значения формы на дополнительное поле. Это было то, что урезало HTML.

Чтобы устранить эту проблему, мне пришлось создать привязку пользовательской модели для проверки коллекции Request.Form в HttpContext. Вместо того, чтобы иметь 2 элемента в NameValueCollection, было 3, и это привело меня к поиску проблемы.

Надеюсь, это поможет кому-то еще, пытаясь устранить подобную проблему.

...