Как добавить код (или разметку) динамически в код вида из контроллера MVC3 - PullRequest
1 голос
/ 12 ноября 2011

В моем контроллере вид возвращается как обычно

return new View(myModel);

Я хотел бы добавить дополнительный код к представлению. Например. при определенных условиях «обернуть» всю разметку представления внутри @section. Например, мой взгляд

<h2>@ViewBag.Title</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>

И после обработки действия контроллера я хочу, чтобы возвращаемое представление было

@section MySection{
<h2>@ViewBag.Title</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
}

Возможно ли это?

Спасибо

1 Ответ

4 голосов
/ 12 ноября 2011

Как правило, плохая идея, что ваш контроллер вводит разметку для представления.

Почему бы вам не улучшить модель представления, чтобы она содержала исходную модель представления и это условие?

class MyViewModel {
   MyModelType MyModel { get; set; }
   bool Wrap { get; set; }
}

в представлении ...

@if (!Model.Wrap) {
    <h2>@ViewBag.Title</h2>
    <p>
    @Html.ActionLink("Create New", "Create")
    </p>
}
@section MySection {
   @if (Model.Wrap) {
    <h2>@ViewBag.Title</h2>
    <p>
    @Html.ActionLink("Create New", "Create")
    </p>
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...