如何:页面视图和控制器在ASP.NET MVC中继承
如果我想为所有页面添加通用功能,我创建一个BasePage并从它驱动所有ASPX页面,如何在MVC中为Pageviews和Controllers做到这一点?如何:页面视图和控制器在ASP.NET MVC中继承
对于视图(你称之为“浏览量”),你可能不会有太多的数据/行为在基类中分组,但你仍然可以。你可以定义一个从System.Web.UI.Page继承的类,并将所有的通用逻辑放在那里。 然后在代码中为视图添加视图(在ASP.NET MVC 1.0中,视图中没有代码文件BY DEFAULT后面的代码,但you can create it)从此公共类继承视图类。
对于控制器,您可以创建一个从System.Web.Mvc.Controller中创建一个类并将所有常用事物放入其中的类。然后从这个类中派生所有的控制器类。对命名,命名空间和文件位置没有限制。
好一个控制器,你只是System.Web.Mvc.Controller
继承并添加自定义功能:
public class MyController : System.Web.Mvc.Controller
{
public MyController() : base()
{
ViewData["someDataInMasterPage"] = "Hello World!";
}
}
如果你有一个母版页这将尝试检索一些的ViewData与键的上方,这将使它如果他们的控制器将继承自MyController,则可以在所有视图中访问。
您可以从ViewPage继承以定义自定义功能。例如见下面这个问题:Extending WebFormView in MVC
继承感谢你的帮助 – DevMania 2009-05-22 09:15:44
,如果你想所有视图共享相同的脚本中使用具有所有的脚本功能,在它的母版页,并把一个占位符在它:
<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>
对于控制器,创建你自己的应用程序控制器,从内置MVC控制器继承,然后让你的控制器,以从,而不是仅仅控制
谢谢你帮助 – DevMania 2009-05-22 09:15:40
np;) – 2009-05-22 09:21:27