Включить только часть частичного представления с ASP.NET бритва MVC


Я использую ASP.NET Razor MVC и я использую частичные представления для общего контента, который я не хочу обновлять на каждой отдельной странице.

Я использую следующий синтаксис, чтобы включить мои частичные представления:

@Html.Partial("PartialView")  

На конкретном частичном виде у меня есть два дива:

<div class="divA">
    CONTENT
</div>

<div class="divB">
    CONTENT
</div>
Однако я хочу включить только содержание из divA. Могу ли я сделать что-то вроде следующего, чтобы включить только содержимое из divA?
@Html.Partial("PartialView", @divA)  

Если нет, то как я могу это сделать?

2 2

2 ответа:

Вы можете сделать частичную сильно типизированную модель представления:

public class MyViewModel
{
    public bool ShowOnlyPartA { get; set; }
}

И затем сделайте свое представление строго типизированным для этой модели:

@model MyViewModel

<div class="divA">
    CONTENT
</div>

@if (Model == null || !Model.ShowOnlyPartA)
{
    <div class="divB">
        CONTENT
    </div>
}

И тогда вы могли бы назвать свой частичный так:

@Html.Partial("PartialView", new MyViewModel { ShowOnlyPartA = true }) 

Или вот так:

@Html.Partial("PartialView") 

Отличный вопрос, а также ответ от Дарина. В качестве альтернативы, передайте строку вместо:

<!-- View -->
@Html.Partial("PartialView", "divA") 

<!-- PartialView -->
@if (Model == "divA")
{
  <div class="divA">
  </div>
}

@if (Model == "divB")
{
  <div class="divB">
  </div>
}