Поскольку новый экземпляр Controller создается при каждом запросе, мы можем установить значения для конкретного действия на контроллере, чтобы изменить способ обработки действия MVC.

.NET MVC 3 RC2 ModelBinder по умолчанию автоматически анализирует тело запроса, еслиContent-Type установлен вapplication/json, Проблема в том, что это оставляетRequest.InputStream в конце потока. Это означает, что если вы попытаетесь прочитать входной поток, используя свой собственный код, вы сначала сбросите его обратно в начало:

// client sends HTTP request with Content-Type: application/json and a JSON
// string in the body

// requestBody is null because the stream is already at the end
var requestBody = new StreamReader(Request.InputStream).ReadToEnd();

// resets the position back to the beginning of the input stream
var reader = new StreamReader(Request.InputStream);
reader.BaseStream.Position = 0;
var requestBody = reader.ReadToEnd();

Так как я используюJson.NET чтобы выполнить сериализацию / десериализацию, я бы хотел отключить ModelBinder по умолчанию от выполнения этого дополнительного анализа. Есть ли способ сделать это?

Ответы на вопрос(1)

Ваш ответ на вопрос