В ASP.NET MVC 3 RC2 по умолчанию ModelBinder будет автоматически анализировать тело запроса, если Content-Type
установлен в приложение / 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 по умолчанию не выполнял этот дополнительный синтаксический анализ. Есть ли способ сделать это?