在视图代码中更改剃刀视图的基类

时间:2012-05-08 03:59:11

标签: c# asp.net-mvc-3 razor asp.net-mvc-4

请注意,这不是一个重复的问题。我知道我们可以在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是完全不同的类。

2 个答案:

答案 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