mvc no codebehind не работают строго типизированные заголовки viewdata
-
03-07-2019 - |
Вопрос
Я добавляю это в свой заголовок <%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>
и я могу получить доступ к ViewData и всем его внутренним компонентам, а также ко всем объектам mvc, таким как URL и html.Как только я добавлю "System.Web.Mvc.ViewPage<app.Models.tTable>
" У меня нет доступа ни к каким классам mvc и вспомогательным методам.Я не понимаю, почему это так.Недавно я выполнил обновление с mvc preview 5 до rc1, но мой переход на rc1 был безупречным, без каких-либо ошибок или багов.
Решение
После рыбалки (много рыбалки) я нашел ответ, это потому, что я не читал официальные примечания к выпуску, а скорее просматривал руководство из блога, но в любом случае, чтобы это заработало, вам нужно заменить <pages>
узел в файле web.config в вашем каталоге "/Views" с
<!--
Enabling request validation in view pages would cause validation to occur
after the input has already been processed by the controller. By default
MVC performs request validation before a controller processes the input.
To change this behavior apply the ValidateInputAttribute to a
controller or action.
-->
<pages
validateRequest="false"
pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<controls>
<add assembly="System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
</controls>
</pages>
Я добавил комментарий из предварительно созданного файла web.config
Другие советы
Тут есть одна хитрость.В папке /Views есть web.config.Ух ты, я этого не заметил.
Спасибо за публикацию