6

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

4

2 回答 2

9

您可以使用关键字更改Razor@inherits中的基类,您的基类只需要从 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
{
}
于 2012-05-08T05:09:10.267 回答
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
于 2012-05-08T04:17:06.263 回答