在IronPython asp.net网站上的VB webform

时间:2009-11-12 12:09:37

标签: asp.net vb.net ironpython

我试图将之前在vb.net中制作的webform带到IronPython asp.net网站,但没有运气。看到它没有工作后,我尝试编写最简单的代码隐藏的vb.net webform,看看在IronPython网站上是否存在vb.net的问题,我得到以下常见错误

“确保此文件中定义的类与属性中的定义类继承,并且它扩展了右基页(页面或控件)”(对不起,如果翻译不是最准确的,我会用西班牙语获取该消息)

但是如果我在同一个网站上创建一个vb.net webform,同一个文件中的源代码(同一页面中的脚本runat =“server”标签之间的vb.net代码)我得不到问题

我是否必须为同一个IronPython网站中的两种源代码语言配置一些东西,比如在webconfig文件中配置某些东西,或者是否存在一些无法解决的兼容性问题?< / p>

2 个答案:

答案 0 :(得分:1)

<script />标记之间的代码是在首次运行页面时动态编译的。这使您可以混合语言。但是,代码隐藏文件中的类被VS.NET静态编译为程序集...... VS.NET项目一次只能支持一种语言。

一种解决方案是将您的VB.NET代码隐藏在一个单独的程序集中。例如:

  • 将新的VB类库项目添加到现有解决方案中
    • 添加对System.Web的引用
    • 创建您的VB.NET代码隐藏。它们应该是继承自System.Web.UI.Page。
    • 的普通类
  • 在ASP.NET网站项目中,添加对新项目的引用
  • 编辑* .aspx文件中的 @ Page 指令以继承新项目中的类
    • e.g。 <%@ Page Inherits="YourNewVBClassLibraryProject.MyVBCodeBehinds" ... /> Inherits 属性包含相关的命名空间限定类名

答案 1 :(得分:1)

感谢Serilla的回复。您的信息很有趣,但我只是通过创建app_folder并在那里添加vb文件来解决它。你认为我这样做会有未来的问题吗?

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代码工作但是ironpython没有。当那些行存在时,文件背后的Ironpython代码工作但vb没有