我想通过代码在基础控制器或属性中设置默认的Razor布局。文档中提到这是可能的,但我无法弄清楚它是如何完成的。如何通过属性过滤器在MVC中设置Razor布局?
我知道有可用的View方法的masterPage参数,但我希望控制器返回的所有视图自动设置该值。
不,我不能使用_ViewStart这个,因为我的意见将在不同的地方(这不是一个正常的MVC网站配置)。
public class MyControllerBase : Controller {
public override ViewResult View(string viewName, string masterName, object model) {
if(String.IsNullOrEmpty(masterName)) {
masterName = GetDefaultLayout();
}
base.View(viewName, masterName, model);
}
public virtual string GetDefaultLayout() {
return // your default layout here
}
}
在上面的代码,你可以明确地设置:
感谢
因为ActionFilterAttribute已经这样做了:''public abstract class ActionFilterAttribute:FilterAttribute,IActionFilter,IResultFilter'',所以你实际上不需要直接从'IResultFilter'继承。 – Oliver 2012-10-05 15:34:24