如何检测我的母版页是通过 MVC 项目中的 Web 窗体还是 MVC 页调用的

本文关键字:MVC 项目 窗体 调用 Web 何检测 检测 母版页 我的 | 更新日期: 2023-09-27 17:56:04

我正在做的项目最初是WebForms,后来迁移到 Asp.Net MVC。 3 个页面仍在使用 Webforms,不值得努力重写它们。

为了防止必须维护两个看起来相同的单独母版页,我有两个母版页,MVC.MasterWebforms.MasterWebforms.Master MVC.Master设置为其母版页,因此每当我向菜单添加新工具链接时,无论用户是在查看 Web 窗体还是 MVC 页面,它始终显示。 该Webforms.Master上只有一个ajaxToolkit脚本管理器。

到目前为止,一切都运行良好,我正在添加 Telerik 支持。 问题是您无法在 WebForm 页面中使用 Html 帮助程序,因为您会得到异常A ViewMasterPage can be used only with content pages that derive from ViewPage or ViewPage<TModel>.

由于我不在乎 Telerik 的脚本和样式表注册器是否为 Webform 页面运行,因此理想情况下,我想做类似的事情

<% if (!PageIsWebforms) 
   {
       Html.Telerik().....
   }
%>

不幸的是,我想不出一个好方法来成功确定内页是否是WebForms页面。有人知道我如何做到这一点吗?

如何检测我的母版页是通过 MVC 项目中的 Web 窗体还是 MVC 页调用的

MVC页面继承了 System.Web.UI.Page 以外的内容,您可以测试Page is System.Web.MVC.ViewPage吗?您可以将其设置为属性以使标记更容易。