Request.QueryString не работает в _Layout.cshtml в MVC3 - PullRequest
2 голосов
/ 07 июня 2011

Я столкнулся со странной проблемой с MVC3 - если я пытаюсь использовать Request.QueryString["bookID"] в моем файле _Layout.cshtml, он всегда возвращает пустую строку.Если я перенесу это на любую из страниц, которые наследуют эту страницу, она работает нормально.

Большинство подобных проблем, похоже, связаны с веб-формами и мастер-страницами, поэтому обычные исправления, похоже, не применяются.

Кто-нибудь еще сталкивался с этой проблемой? Должна ли эта работа и, возможно, MVC просто странная для меня?

1 Ответ

3 голосов
/ 08 июня 2011

Вы не должны обращаться к запросу в представлении - это не подход MVC.Это ответственность контроллера.

Вам не нужно обращаться к QueryString напрямую - для этого нужна маршрутизация.Добавьте параметр int bookID в ваш метод действия, и MVC передаст вам правильное значение.Чем внутри действия вы можете либо добавить его в ViewBag, либо, лучше, заполнить класс модели для строго типизированных представлений.

...