请注意,这不是一个重复的问题。我知道我们可以在views / web.config的razor部分中指定基本视图类型。但是我希望我的view1,view2继承自baseviewA,而view3,view4继承自baseviewB。在剃须刀中,我怎么能像在ASPX引擎中那样做:
<%@ Page Language="C#" Inherits="Test.Myproject.Web.Mvc.ViewBase" %>
<%@ Control Language="C#" Inherits="Test.Myproject.Web.Mvc.PartialViewBase" %>
编辑我不关心模特。在我的问题中,baseviewA和baseviewB是完全不同的类。
答案 0 :(得分:9)
您可以使用@inherits
关键字更改base class in Razor,您的基类只需要从System.Web.Mvc.WebViewPage
派生。
所以你的样本:
<%@ Page Language="C#" Inherits="Test.Myproject.Web.Mvc.ViewBase" %>
将是
@inherits Test.Myproject.Web.Mvc.ViewBase
哪里
public class Test.Myproject.Web.Mvc.ViewBase : System.Web.Mvc.WebViewPage
{
}
答案 1 :(得分:2)
Inherits指定将在视图中使用的模型类型。同样可以在Razor中完成。
<%@ Page Language="C#" Inherits="Test.Myproject.Web.Mvc.ViewBase<Test.Models.MyModel>" %
相当于Razor中的以下
@model Test.Models.MyModel
在视图和部分视图中都是一样的,所以
<%@ Control Language="C#" Inherits="Test.Myproject.Web.Mvc.PartialViewBase<Test.Models.MyModelB>" %>
相当于
@model Test.Models.MyModelB