2011-05-10 34 views
0

我正在開發的項目是一個最初是WebForms的項目,後來被遷移到Asp.Net MVC。 3頁仍在使用Webforms,不值得重寫它們。如何檢測我的母版頁是否通過我的MVC項目中的Webforms或MVC頁面調用?

爲防止維護兩個看起來完全相同的獨立母版頁,我有兩個母版頁MVC.MasterWebforms.MasterWebforms.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頁面。有沒有人有任何想法我可以做到這一點?

回答

2

MVC頁面繼承了System.Web.UI.Page以外的內容,您可以測試Page is System.Web.MVC.ViewPage。 您可以使該屬性使標記更容易。

+0

工作。如果頁面是一個MVC頁面,那麼'Page'屬性繼承自'System.Web.MVC.ViewPage',所以檢查'Page是System.Web.MVC.ViewPage'告訴我頁面是否是MVC。謝謝! – KallDrexx 2011-05-10 15:25:30

+0

@KallDrexx,更直接的測試是檢查'頁面是System.Web.MVC.ViewPage'(注意**是**而不是**)。我編輯了我的答案,以包含實際的MVC頁面類型。 – 2011-05-10 15:26:51

+0

是的,我只是注意到並編輯它:) – KallDrexx 2011-05-10 15:27:43

相關問題