У меня есть таблица, содержащая разные цвета тем, и я определил _Layouts и css, я применил css к их уважительному макету.
Например _LayoutBlue _LayoutGreen
Я хочу проверить с помощью оператора switch, что, когда пользователь входит в систему перед рендерингом представления, он должен проверять идентификатор цвета темы, который пользователь выбрал при создании учетной записи, и применить к пользовательскому представлению
Вопрос в том, могу ли я сделать это из контроллера входа, чтобы управлять макетом рендеринга на основе цвета темы пользователя в таблице базы данных
Например, это
switch(ThemeID)
{
case 1:
Layout = "~/Views/Shared/_BlueLayout.cshtml";
break;
case 2:
Layout = "~/Views/Shared/_MagentaLayout.cshtml";
break;
default:
Layout = "~/Views/Shared/_Layout.cshtml";
break;
}
1 ответ
Да, как вы показали в своем вопросе, мы можем сделать то же самое, другой простой и эффективный способ:
Мы можем переопределить рендеринг макета по умолчанию, вернув макет из ActionResult, используя следующий код:
public ActionResult Index()
{
RegisterModel model = new RegisterModel();
var layout="";
//Just check your conditions here instead in view and return a appropriate layout from here
layout="~/Views/Shared/_BlueLayout.cshtml";
return View("Index", layout , model);
}
ИЛИ Вместо применения условия в представлении просто поместите условия в контроллер как:
Контроллер:
public ActionResult Index()
{
RegisterModel model = new RegisterModel();
//Just check your conditions here instead in view and put appropriate layout in Viewbag from here
Viewbag.layout="~/Views/Shared/_BlueLayout.cshtml";
return View("Index", model);
}
Посмотреть :
@{
Layout = Viewbag.layout;
}
Похожие вопросы
Связанные вопросы
Новые вопросы
css
CSS (каскадные таблицы стилей) - это язык таблиц стилей представления, используемый для описания внешнего вида и форматирования документов HTML (язык разметки гипертекста), XML (расширяемый язык разметки) и элементов SVG, включая (но не ограничиваясь) цвета, макет, шрифты, и анимации. Также описывается, как элементы должны отображаться на экране, на бумаге, в речи или на других носителях.