Если ваш частичный вид выглядит примерно так
<div>...Generic stuff used all the time...</div>
...
<div>...special block used only in some circumstances...</div>
...
<div>...another special block used only in some other circumstance...</div>
...etc...
Вы можете создать класс ViewModel, который имеет некоторые свойства, чтобы определить, какой блок кода отображать
, например
public class MyViewModel
{
public bool ShowBlockOne { get; set; }
public bool ShowBlockTwo { get; set; }
}
Тогда ваш частичный вид будет выглядеть примерно так
@model MyViewModel
<div>...Generic stuff used all the time...</div>
...
@if (Model.ShowBlockOne) {
<div>...special block used only in some circumstances...</div>
}
...
@if (Model.ShowBlockTwo) {
<div>...another special block used only in some other circumstance...</div>
}
...etc...
И представления, вызывающие частичное представление, будут использовать Html.RenderPartial
и будут передавать MyViewModel с установленными свойствами в зависимости от того, что они хотят показать. например,
@{ Html.RenderPartial("MyPartial", new MyViewModel { ShowBlockOne = true } ); }
Вы должны быть в состоянии использовать некоторые варианты этого.
Как вы знаете, вы должны сводить логику к минимуму в своих представлениях, но иногда, если / то в порядке.