我正在开发的项目是一个最初是WebForms的项目,后来被迁移到Asp.Net MVC。 3页仍在使用Webforms,不值得重写它们。如何检测我的母版页是否通过我的MVC项目中的Webforms或MVC页面调用?
为防止维护两个看起来完全相同的独立母版页,我有两个母版页MVC.Master
和Webforms.Master
。 Webforms.Master
已将MVC.Master
设置为其主页面,因此无论我何时向菜单中添加新工具链接,都会显示无论用户是在查看Webforms还是MVC页面。 Webforms.Master
只有一个ajaxToolkit脚本管理器。
一切工作都很好,直到现在,我正在添加Telerik支持。问题是,你不能在Web窗体页中使用HTML辅助,因为你得到的异常A ViewMasterPage can be used only with content pages that derive from ViewPage or ViewPage<TModel>.
因为我不在乎,如果Telerik的脚本和样式表注册服务商为网络表单页面上运行,我非常愿意做这样的事情
<% if (!PageIsWebforms)
{
Html.Telerik().....
}
%>
不幸的是,我想不出一个好方法来成功确定内页是否是WebForms页面。有没有人有任何想法我可以做到这一点?
工作。如果页面是一个MVC页面,那么'Page'属性继承自'System.Web.MVC.ViewPage',所以检查'Page是System.Web.MVC.ViewPage'告诉我页面是否是MVC。谢谢! – KallDrexx 2011-05-10 15:25:30
@KallDrexx,更直接的测试是检查'页面是System.Web.MVC.ViewPage'(注意**是**而不是**)。我编辑了我的答案,以包含实际的MVC页面类型。 – 2011-05-10 15:26:51
是的,我只是注意到并编辑它:) – KallDrexx 2011-05-10 15:27:43