Asp.net 设置表单';.NET3.5SP1中的操作在编译时会导致错误

Asp.net 设置表单';.NET3.5SP1中的操作在编译时会导致错误,asp.net,.net-3.5,Asp.net,.net 3.5,我最近安装了.NET3.5SP1。当我部署一个已编译的网站,其中包含一个带有操作集的表单时: <form id="theForm" runat="server" action="post.aspx"> 我收到了这个错误。 找不到方法:“Void System.Web.UI.HtmlControls.HtmlForm.set\u Action(System.String)”。 如果一个没有安装SP1的开发人员部署了编译过的站点,它就可以正常工作。有人知道这方面的解决方案吗?我不知

我最近安装了.NET3.5SP1。当我部署一个已编译的网站,其中包含一个带有操作集的表单时:

<form id="theForm" runat="server" action="post.aspx">

我收到了这个错误。
找不到方法:“Void System.Web.UI.HtmlControls.HtmlForm.set\u Action(System.String)”。

如果一个没有安装SP1的开发人员部署了编译过的站点,它就可以正常工作。有人知道这方面的解决方案吗?

我不知道具体的解决方案,但是HtmlForm.set\u Action()是编译器创建的一个函数,充当名为Action的属性的setter

当您这样做时:

public String Action { set { DoStuff(); } }
set代码实际上变成了一个名为set\u Action的函数


我知道这不是最好的答案,但我希望它能帮助你找到问题的根源

(.NET3.5RTM没有)。因此,当您部署时,您的代码试图设置HtmlForm.Action属性,但失败了,因为部署目标上的System.Web.dll是RTM,并且属性上没有setter。

我刚刚遇到了同样的问题。 据我所知,这确实是因为我的电脑上有.NET 3.5 SP1,而我部署项目的服务器上没有。
据我所知,一种解决方案是使用.NET3.5SP1更新服务器。由于我还不想这样做,我只是从项目中的所有表单中删除了“action”属性,这就解决了问题。

上述所有内容都是正确的

事实上,当安装3.5SP1时,它会自动用自己的SP2更新2.0和3.0。 因此,如果将2.0用于应用程序,则会出现错误


此外,.Net2.0上的SP1没有导致问题。

还有另一种解决方案。
编写一个JavaScript,将表单的操作设置为页面加载时的预期URL,并在页面加载时注册脚本。

安装Framework 3.6 sp1就足够了,它工作正常