Вопросы о движке Razor в asp.net mvc 3 - PullRequest
2 голосов
/ 20 января 2011

Я только что получил пару вопросов о asp.net mvc 3.

Я читал о макетах с бритвой .

Так что статья, я думаю, похожа наПредварительный просмотр 1, и я использую окончательную версию 3.0.

  1. Когда я делаю проект 3.0 и смотрю на _Layout.cshtml, он имеет

    <title>@ViewBag.Title</title>
    

    Что такое ViewBag?Я слышал, что это похоже на ViewData.

  2. Если то, что я слышал, верно, почему они используют это так?В статье, которую я перечислил, они использовали

    <title>@View.Title </title>
    

    Так вышесказанное устарело или это другой способ сделать это?

  3. С _ViewStart.cshtml, если вы поставилиодин из них в общей папке, а затем один в папке домашних просмотров.Тот, что в домашнем просмотре, один превзойдет общий?

  4. Можете ли вы иметь _ViewStart.cshtml в общей папке?

  5. ВУ движка aspx были мастер-страницы с тегами контента.@ Разделы, кажется, эквивалентны этому.Однако, если вам нужен только один тег содержимого (то есть для тела), вы просто используете @RenderBody?

  6. Используется ли @RenderPage для загрузки частичных представлений или для чего-то другого?

  7. В чем отличие от использования @RenderSection Необязательно и просто не помещать что-либо между тегами содержимого, если вы используете движок aspx?

  8. Что происходитесли вы хотите, чтобы содержимое @RenderSection сохранялось в частичном представлении.Вы все еще можете сделать его необязательным?

не относится к asp.net mvc 3

  1. Есть ли в сторонней библиотеке больше помощников html?

Спасибо

1 Ответ

5 голосов
/ 20 января 2011
  1. В предварительных версиях ViewBag назывался View. В RTM это ViewBag. ViewBag эквивалентен ViewData с той лишь разницей, что он опирается на динамические свойства .NET 4.0, а это означает, что вместо ViewData["Title"] вы можете написать ViewBag.Title. При этом вы не должны использовать ни один из них, но иметь строго типизированные представления.

  2. Он устарел и не будет компилироваться в ASP.NET MVC 3 RTM

  3. Это будет зависеть от того, поместите ли вы его после или до того, как вызов @RenderBody()
    _ViewStart покажет структуру папок любого отображаемого основного представления. Если представление будет найдено в домашней папке, будет выполнено начальное \ _ViewStart. Если представление будет найдено в общей папке, будет выполнено Shared \ _ViewStart.

  4. Нет
    Да, но он будет выполнен только в том случае, если выполняемое представление находится в общей папке.

  5. Да

  6. @RenderPage совпадает с @Html.Partial, что позволяет вам включить частичное представление. Это вопрос личных предпочтений. Он взят из WebPages, тогда как Html.Partial - это метод расширения, который использовался с ранних версий MVC.
    Уточнение : В MVC вы должны использовать только @Html.Partial, потому что он проходит через все MVC шаги разрешения представлений и т. Д.

  7. Если раздел не является обязательным, вам не нужно определять его на странице содержимого. То же, что и пустое содержимое в движке aspx.

  8. ???

Есть ли в сторонней библиотеке больше помощников по html?

Да, MVCContrib , WebHelpers , ...

Необходимо прочитать: ASP.NET MVC 3: макеты и разделы с помощью Razor

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