Есть ли способ установить макет из контроллера?Как установить макет с контроллера
попытались:
ViewData["Layout"] = "..."
return View("view", Model);
Я знаю, что это будет звучать странно, с некоторыми людьми ....
Есть ли способ установить макет из контроллера?Как установить макет с контроллера
попытались:
ViewData["Layout"] = "..."
return View("view", Model);
Я знаю, что это будет звучать странно, с некоторыми людьми ....
У метода просмотра есть перегрузка, чтобы установить его главный макет примерно так
return View ("NameOfView",masterName:"viewName");
Используя свой код, вы могли бы поставить это на ваш взгляд:
@ {
Layout = ViewData["Layout"];
}
Дарен Димитров имеет очень хороший ответ на этот один с атрибутами:
How do I specify different Layouts in the ASP.NET MVC 3 razor ViewStart file?
спасибо, что указали это! –
Если у вас есть файл _ViewStart.cshtml в папке Views, вы можете автоматически установить макет для всех представлений в пределах одной и той же папке (и вложенные папки):
@{
Layout = "~/Views/Shared/Layout.cshtml";
}
Вопрос был о том, как установить его с контроллера. –
Достаточно честный, неверный вопрос :). В этом случае вы можете использовать предложение Роба выше. –
в методе действия вы можете использовать MasterName недвижимость в ViewResult класса, чтобы изменить макет страницы.
public ActionResult Index()
{
var myView = View();
myView.MasterName = "~/Views/Shared/_Layout2.cshtml";
return myView;
}
Всегда здорово видеть разные вкусы. –
В контроллере вы можете установить главную страницу следующим образом. Я использую MVC 5.2
return View("ViewName", "MasterPageName", model)
вопрос конкретно спрашивает о контроллере ... – Nathan
Он уже установить ViewData [ «Layout»] в его коде, это то, что ему нужно, чтобы добавить к виду, чтобы сделать его но я понимаю, что вы говорите. –
Работает отлично для меня, Dotnet Core MVC не обладает свойством MasterName на представлении, поэтому я не мог этого установить. Я изменил этот код, чтобы быть немного более надежным. Layout = (ViewData ["Макет"] как строка)? "_layout"; – Matt