我添加MVC到一个项目,有一个旧的webform页面。这工作正常。但是,我目前有一个单独的母版页面为MVC和webforms。两个母版页产生基本相同的输出。我真的想杀死webforms一个,只是使用MVC母版页与所有我的网页,并保持干。
不是DRY已经咬了我几次,当我忘了改变两者。
我试着做明显的方式,只是指向Webform内容页面的MasterPage属性在MVC母版页。这引发一个错误,说MVC大师只能使用MVC视图。
这似乎是混合MVC和webform项目的一个很常见的问题。我的MVC主人没有做任何事情与ViewData,所以我没有看到任何原因webforms不能使用它们。
解决方法
您可以绝对共享同一个母版页。您的MVC母版页必须通过其MasterPageFile属性简单地指向WebForms母版页。这适用于您的WebForms MasterPage样式到您的MVC MasterPage。
我在生产中使用这个设置。
在我的MVC主页上的声明,指向Web窗体主页:
<%@ Master Language="C#" MasterPageFile="~/MasterPage/Site.Master" AutoEventWireup="true" Inherits="System.Web.Mvc.ViewMasterPage" %>
奇迹般有效。