Я пытаюсь установить путь компоновки в пользовательской ActionFilterAttribute
я написал следующим образом:Настройка макета в ActionFilterAttribute.OnActionExecuted проблематично
public class LayoutInjecterAttribute : ActionFilterAttribute
{
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
base.OnActionExecuted(filterContext);
var result = filterContext.Result as ViewResult;
if (result != null)
{
result.MasterName = "~/Views/Layouts/Test.cshtml"
}
}
}
В здесь Test.cshtml прекомпилируется вид (с помощью RazorGenerator
) в другом проекте.
Но это дает мне ошибку:
The view 'Index' or its master was not found or no view engine supports the searched locations. The following locations were searched: ~/Views/Home/Index.cshtml ~/Views/Shared/Index.cshtml ~/Views/Home/Index.aspx ~/Views/Home/Index.ascx ~/Views/Shared/Index.aspx ~/Views/Shared/Index.ascx ~/Views/Layouts/Test.cshtml
и контроллер на самом деле прост:
[LayoutInjecter]
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
}
Вы создали контрольные макеты? –
Нет, нет контроллера с именем 'Layouts' – Kaan
. Добавьте новый контроллер под названием layouts, а затем создайте новый результат действия Test и верните представление, и это должно быть работа –