У меня были некоторые проблемы с отсутствующими данными постов в ASP.NET MVC, что привело меня к исследованию того, как ASP.NET MVC работает с недопустимыми длинами содержимого.Я предполагал, что сообщение с недопустимой длиной содержимого должно игнорироваться MVC.NET, но, похоже, это не так.
В качестве примера попробуйте создать новое веб-приложение ASP.NET MVC 2и добавьте это действие в HomeController:
public ActionResult Test(int userID, string text)
{
return Content("UserID = " + userID + " Text = " + text);
}
Попытайтесь создать простую форму, которая отправляет сообщение в вышеуказанное действие, запустите fiddler и (используя «Построитель запросов») измените необработанные данные, чтобы некоторые данные формыотсутствует (например, удалить текстовый параметр).Перед выполнением запроса не забудьте снять флажок «Исправить заголовок длины содержимого» в параметрах «Построитель запросов», затем установить точку останова в приведенном выше коде и выполнить пользовательский запрос http.
Я считаю, чтозапрос занимает намного больше времени, чем обычно (30 секунд или около того), но, к моему изумлению, все еще обрабатывается действием контроллеров.Кто-нибудь знает, является ли это ожидаемым поведением и, если да, что бы вы порекомендовали защитить от недопустимых длин контента?