ASP.NET исключен вид удара - PullRequest
       2

ASP.NET исключен вид удара

1 голос
/ 13 декабря 2010

У меня есть сценарий, в котором я объединил два представления в одно общее представление.

Исключен из проекта, но всегда получает удар

  • Views / Foo / Do.aspx
  • Views / Бар / Do.aspx

Существует в проекте, но никогда не получает удар

  • Views / Shared / Do.aspx

Файлы все еще существуют в системе контроля версий, но они больше не являются частью проекта.

  1. Почему представление, которое больше не является частью проекта, имеет приоритет над представлением, которое является частью проекта? Может быть, я думаю, что MVC делает больше, чем делает ...

  2. Ищет ли MVC какой-либо найденный файл, который соответствует ему, независимо от того, является ли он частью проекта?

  3. Это потенциальный недостаток безопасности, если вы можете поместить туда файл с правильным именем, даже если он не является частью проекта?

1 Ответ

2 голосов
/ 14 декабря 2010

Ответ 2 правильный. MVC будет искать в папках вида подходящее именованное представление. Приоритет имеет место в случае более специфических переопределений, более общих (т. Е. Представление «Do», вызываемое из контроллера «Foo», сначала ищет Views / Foo / Do.aspx, затем ищет Views / Shared / Do.aspx). То же самое относится и к частичным значениям, за исключением приоритетов иерархии, сначала по расширению (ascx), а затем по специфике папки.

Участие в проекте влияет только на Visual Studio (такие инструменты, как «перейти к просмотру», свойства публикации и т. Д.). Хотя, если вы решите иметь скомпилированные представления, это может иметь значение.

Это лишь недостаток безопасности, если вы позволяете людям просто перетаскивать файлы в ваши папки View, и в этом случае они могут просто перезаписать любое из представлений, которые вы включили в ваш проект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...