代码之家  ›  专栏  ›  技术社区  ›  DevMania

如何:ASP.NET MVC中的页面视图和控制器继承

  •  4
  • DevMania  · 技术社区  · 16 年前

    3 回复  |  直到 13 年前
        1
  •  2
  •   Community CDub    8 年前

    作为一个控制器,你只需要从 System.Web.Mvc.Controller 并添加自定义功能:

    public class MyController : System.Web.Mvc.Controller
    {
      public MyController() : base()
      {
        ViewData["someDataInMasterPage"] = "Hello World!";
      }
    }
    

    Extending WebFormView in MVC

        2
  •  2
  •   Community CDub    8 年前

    对于视图(你称之为“页面视图”),你可能不会有太多的数据/行为在基类中分组,但你仍然可以。您将定义一个继承自System.Web.UI.Page的类,并将所有公共逻辑放在其中。 然后在视图的代码隐藏文件中(在ASP.NET MVC 1.0中,默认情况下视图没有代码隐藏文件,但 you can create it )从该公共类继承视图类。

    对于控制器,您可以创建一个从System.Web.Mvc.controller导入的类,并将所有公共内容放入其中。然后从该类派生所有控制器类。对命名、名称空间和文件位置没有限制。

        3
  •  1
  •   Dom    16 年前

    <asp:ContentPlaceHolder ID="MainContent" runat="server" />
    

    然后每个子视图引用母版页。

    <%@ Page Title="" Language="C#" MasterPageFile="Site.Master" 
    Inherits="OpenProjects.Web.Mvc.ApplicationView %>
    
    <asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
    
    </asp:Content>