Я проектирование некоторые веб-приложение, я пошел на некоторое _layout.cshtml, что фрагмент:улучшить разделение зрения и логики
//some html
<h4>Your account</h4>
@{ Html.RenderPartial("UserMenu"); }
отвечает за рендеринг видов меню. Он имеет 3 возможных состояния - зарегистрирован как admin, зарегистрирован как простой пользователь, а не зарегистрирован. Я сделал это частичный вид так:
@if (User.IsInRole("Admin"))
{
@:Admin menu
}
else
{
if (User.Identity.IsAuthenticated)
{
@:Normal menu
}
else
{
@Html.ActionLink("Login", "Logon", "Account");
}
}
Но я не удовлетворен этим решением, как это имеет плохое разделение логики и представления. Как вы предлагаете его улучшить?
Конечно, нет, но лично мне не нравятся конструкции типа if-else (if-else), поскольку я считаю, что это представление берет на себя ответственность за обязанности, которые не следует принимать. Я скорее подумал о каком-то помощнике, который выберет правильный PartialView из возможных 3 - что вы думаете? – deha