我试图将之前在vb.net中制作的webform带到IronPython asp.net网站,但没有运气。看到它没有工作后,我尝试编写最简单的代码隐藏的vb.net webform,看看在IronPython网站上是否存在vb.net的问题,我得到以下常见错误
“确保此文件中定义的类与属性中的定义类继承,并且它扩展了右基页(页面或控件)”(对不起,如果翻译不是最准确的,我会用西班牙语获取该消息)
但是如果我在同一个网站上创建一个vb.net webform,同一个文件中的源代码(同一页面中的脚本runat =“server”标签之间的vb.net代码)我得不到问题。
我是否必须为同一个IronPython网站中的两种源代码语言配置一些东西,比如在webconfig文件中配置某些东西,或者是否存在一些无法解决的兼容性问题?< / p>
答案 0 :(得分:1)
<script />
标记之间的代码是在首次运行页面时动态编译的。这使您可以混合语言。但是,代码隐藏文件中的类被VS.NET静态编译为程序集...... VS.NET项目一次只能支持一种语言。
一种解决方案是将您的VB.NET代码隐藏在一个单独的程序集中。例如:
<%@ 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没有