我正在尝试在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/Layouts/Test.cshtml
控制器实际上很简单:
[LayoutInjecter]
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
}