заголовок ответа в действии исчезает из виду - asp net mvc - PullRequest
1 голос
/ 25 декабря 2011

В действии контроллера заголовок ответа устанавливается следующим образом:

HttpContext.Response.AddHeader("key", "value");

В визуализированном представлении Response.Headers ["key"] кажется нулевым (кстати, в запросах ajax заголовок устанавливается и извлекается без каких-либо проблем). Есть ли какая-то особая причина для этого или это глупая ошибка в моем коде?

Ответы [ 2 ]

3 голосов
/ 25 декабря 2011

Вы можете добавлять только заголовки ответов, но не можете их читать, если не работаете в режиме интегрированного конвейера IIS 7.При работе в стандартной модели заголовки ответа HTTP отправляются на более позднем этапе, когда вы пытаетесь прочитать их в своем коде.Об этом говорится в документации :

Свойство Headers поддерживается только в режиме интегрированного конвейера IIS 7.0 и, по крайней мере, в .NET Framework 3.0.Когда вы пытаетесь получить доступ к свойству Headers, и ни одно из этих двух условий не выполняется, генерируется исключение PlatformNotSupportedException.

При этом все, к чему должен обращаться вид - это модель представления, а не заголовки ответа,Таким образом, в вашем действии контроллера вы создадите модель представления, содержащую всю информацию, которая потребуется представлению, и передадите ее представлению для потребления.Помните: представление не извлекает данные, представление использует данные, которые обрабатываются из контроллера в форме модели представления.

1 голос
/ 25 декабря 2011

Мне кажется, что вы пытаетесь передать некоторые данные с вашего контроллера на ваш взгляд. В этом случае вам следует использовать ViewData или ViewBag.

В вашем контроллере:

ViewData["key"] = "value";

По вашему мнению

<span>Your key: @ViewData["key"]</span>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...