1 namespace System.Web.Mvc {
3 using System.Globalization;
5 using System.Web.Mvc.Resources;
7 public class WebFormView : BuildManagerCompiledView {
9 public WebFormView(ControllerContext controllerContext, string viewPath)
10 : this(controllerContext, viewPath, null, null) {
13 public WebFormView(ControllerContext controllerContext, string viewPath, string masterPath)
14 : this(controllerContext, viewPath, masterPath, null) {
17 public WebFormView(ControllerContext controllerContext, string viewPath, string masterPath, IViewPageActivator viewPageActivator)
18 : base(controllerContext, viewPath, viewPageActivator) {
19 MasterPath = masterPath ?? String.Empty;
22 public string MasterPath {
27 protected override void RenderView(ViewContext viewContext, TextWriter writer, object instance) {
29 ViewPage viewPage = instance as ViewPage;
30 if (viewPage != null) {
31 RenderViewPage(viewContext, viewPage);
35 ViewUserControl viewUserControl = instance as ViewUserControl;
36 if (viewUserControl != null) {
37 RenderViewUserControl(viewContext, viewUserControl);
41 throw new InvalidOperationException(
43 CultureInfo.CurrentCulture,
44 MvcResources.WebFormViewEngine_WrongViewBase,
48 private void RenderViewPage(ViewContext context, ViewPage page) {
49 if (!String.IsNullOrEmpty(MasterPath)) {
50 page.MasterLocation = MasterPath;
53 page.ViewData = context.ViewData;
54 page.RenderView(context);
57 private void RenderViewUserControl(ViewContext context, ViewUserControl control) {
58 if (!String.IsNullOrEmpty(MasterPath)) {
59 throw new InvalidOperationException(MvcResources.WebFormViewEngine_UserControlCannotHaveMaster);
62 control.ViewData = context.ViewData;
63 control.RenderView(context);