Введение:
Веб-приложение, ASP.NET MVC 3, действие контроллера, которое принимает экземпляр класса модели POCO с (потенциально) большим полем.
Класс модели:
public class View
{
[Required]
[RegularExpression(...)]
public object name { get; set; }
public object details { get; set; }
public object content { get; set; } // the problem field
}
Действие контроллера:
[ActionName(...)]
[Authorize(...)]
[HttpPost]
public ActionResult CreateView(View view)
{
if (!ModelState.IsValid) { return /*some ActionResult here*/;}
... //do other stuff, create object in db etc. return valid result
}
Проблема:
Действие должно иметь возможность принимать большие объекты JSON (по крайней мере, до ста мегабайт в одном запросе, и это не шутки). По умолчанию я столкнулся с несколькими ограничениями, такими как httpRuntime maxRequestLength
и т. д. — все они решены, кроме MaxJsonLengh — это означает, что ValueProviderFactory по умолчанию для JSON не может обрабатывать такие объекты.
Пробовал:
Установка
Создание собственного пользовательского ValueProviderFactory, как описано в ответе @Darin здесь:
JsonValueProviderFactory выдает «слишком большой запрос»
Dictionary
здесь, но это не то, что мне нужно — я хочу десериализовать ее в мои прекрасные объекты POCO и использовать их в качестве входных параметров для действий.Итак, вопросы:
Кто-нибудь может предложить хорошее решение?