我刚开始使用 SharpDevelop ,我正在尝试将 Visual Studio Express 网站项目转换为 SharpDevelop 项目。我设法创建了解决方案,并在其中创建项目。顺便说一下,这是一个C#ASP.NET webforms项目。只有简单的aspx
页面,其中包含C#代码隐藏和.asmx
网络服务。没有什么特别的,事实上相当古老的东西,在Visual Studio中运行良好。
我喜欢SharpDevelop环境所以请不要回答“为什么不使用Visual Studio”(我有理由)。但这是我的问题:
SharpDevelop未将.aspx
文件与其.aspx.cs
对应文件相关联。因此,代替显示MyPage.aspx
的解决方案资源管理器,然后展开它以查看其下的MyPage.aspx.cs
,您会将它们看作是彼此相邻且不相关的两个不同的单独文件。
当我编译解决方案时,我得到一个错误,因为代码隐藏不能将自己绑定到aspx页面并且不识别控件名称。 (下面的示例来自我的Contact.aspx页面,但它发生在我有任何服务器端asp.net控件的每个页面上。)
The name 'EmailAddress' does not exist in the current context (CS0103) - Contact.aspx.cs:52,100
现在请记住,这在Visual Studio中从未发生过,所以我的SharpDevelop解决方案出了问题。错误发生在代码隐藏(.aspx.cs文件)中的任何地方,引用:
EmailComments.Text
我已经检查过的事情:
1)@Page
指令是正确的,Inherits
名称与类名匹配。
2).cs和.aspx文件名和类名都匹配。
3).net框架版本 4.5 (这会有所不同吗?)
4)我已尝试明确声明代码隐藏中的asp.net控件,是的,这可以防止错误,但文件之间的链接仍然破坏,为什么我必须在代码隐藏中声明控件?从来没有在Visual Studio中使用,它在那里工作得很好。
我的整个解决方案中有一个文件没有这个问题(aspx和aspx.cs文件链接正常),这是default.aspx
页面。它没有什么不同。我唯一能看到的是它是一个小写的文件名,而其他的是混合大小写。 (当然那不相关?)
我非常感谢任何熟悉 SharpDevelop 的人的帮助,或者如果这是一个更普遍的.net问题,那么请告诉我。我觉得好像有一些基本的东西我会忘记这将使这项工作。
非常感谢您的帮助。
更新:我已设法通过执行以下操作链接.aspx和.aspx.cs文件:将.aspx.cs文件拖放到解决方案资源管理器中的.aspx文件。为每对文件执行此操作。然后保存并关闭解决方案并重新打开,它们保持链接状态。但是,错误仍然如上所述,因为代码隐藏不能识别其中引用的控件。
答案 0 :(得分:0)
您可能拥有一个网站或一个"网络应用程序"项目。代码隐藏在两者之间的连接方式存在差异。最重要的是,您可能需要在page指令中使用CodeBehind而不是CodeFile属性。见http://msdn.microsoft.com/en-us/library/vstudio/dd547590(v=vs.100).aspx#summary_of_differences
希望这有帮助。