2009-11-12 68 views
0

我試圖將以前在vb.net中製作的webform帶到IronPython asp.net網站,但沒有運氣。在看到它沒有工作後,我試着編寫最簡單的代碼隱藏在vb.net webform中,看看在IronPython網站上vb.net是否有問題,並且我得到以下常見錯誤:在IronPython asp.net網站中的VB webform

「確保定義的類在這個文件中匹配的屬性繼承和它擴展了正確的基礎頁面(頁或控制)「(對不起,如果翻譯不是最準確的,我用西班牙語獲得該信息)

但如果我創建一個vb.net webform在同一個網站,源代碼在同一個文件中(在同一個頁面中腳本runat =「server」標籤之間的vb.net代碼)我沒有問題

我是否必須爲這兩種源代碼語言配置一些東西,以便在同一個IronPython網站上以這種方式運行,比如在webconfig文件中配置某些內容,或者是否存在一些兼容性問題以解決無法解決的問題?

回答

1

<script />標籤之間的代碼在頁面首次運行時動態編譯。這使您可以混合使用語言。但是,您的代碼隱藏文件中的類通過VS.NET靜態編譯爲一個程序集......而VS.NET項目一次只能支持一種語言。

一個解決方案是將VB.NET代碼隱藏在一個單獨的程序集中。例如:

  • 一個新的VB類庫項目添加到現有的解決方案
    • 添加一個參考的System.Web
    • 創建VB.NET代碼屁股。它們應該是從System.Web.UI.Page繼承的普通類。
  • 在你的ASP.NET網站項目,一個引用添加到新的項目
  • 編輯@頁指令在* .aspx文件繼承在新項目
    • 類例如<%@ Page Inherits="YourNewVBClassLibraryProject.MyVBCodeBehinds" ... />其中繼承屬性包含相關的命名空間中的類名
1

感謝您的答覆Serilla。您的信息很有趣,但我只是通過創建app_folder並在其中添加vb文件來解決它。你認爲我這樣做可能會有一些未來的問題嗎?當在web.config這些線路都啓用了IronPython的工作

<pages compilationMode="Auto" pageParserFilterType="Microsoft.Web.Scripting.UI.NoCompileCodePageParserFilter" pageBaseType="Microsoft.Web.Scripting.UI.ScriptPage" userControlBaseType="Microsoft.Web.Scripting.UI.ScriptUserControl"> 
      <controls> 
       <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
      </controls> 
</pages> 

當我把他們趕走

用VB文件的問題是,隱藏文件的VB代碼的工作,但IronPython的didnt。當線路在那裏,Ironpython代碼背後的文件工作,但vb的人沒有

+0

感謝您的更新。我更習慣於使用不使用App_Code文件夾的ASP.NET Web應用程序項目,但我沒有發現您的解決方案存在任何問題。 :) – JulianM 2009-12-05 03:13:46