Я пытаюсь установить путь макета в пользовательском ActionFilterAttribute
, который я написал следующим образом:
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
) в другом проекте.
Но это дает мне ошибку:
Вид "Индекс" или его мастер не был найден, или механизм просмотра не поддерживает найденные местоположения. Были обысканы следующие местоположения: ~/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/Макеты/Test.cshtml
и контроллер на самом деле прост:
[LayoutInjecter]
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
}