在.net 3.5 SP1中设置表单的操作会在编译时导致错误
我最近安装了.net 3.5 SP1. 当我部署包含网站及其操作集的已编译网站时:
<form id="theForm" runat="server" action="post.aspx">
我收到此错误。
找不到方法:"无效System.Web.UI.HtmlControls.HtmlForm.set_Action(System.String)"。
如果尚未安装SP1的其他开发人员部署了已编译的站点,则可以正常工作。有谁知道解决方案吗?
解决方案
回答
我不知道具体的解决方案,但是HtmlForm.set_Action()是编译器创建的函数,它充当名为Action的属性的设置器。
当我们这样做时:
public String Action { set { DoStuff(); } }
设置代码实际上变成了一个名为set_Action的函数。
我知道这不是最佳答案,但我希望它能找到问题的根源!
回答
.NET 3.5 SP1尝试使用action =""属性(.NET 3.5 RTM没有)。因此,在部署时,代码正在尝试设置HtmlForm.Action属性,但失败,因为部署目标上的System.Web.dll是RTM,并且该属性上没有二传手。
回答
我只是遇到了同样的问题。
据我了解,这确实是由于我的PC上装有.NET 3.5 SP1,而我部署该项目的服务器却没有。
据我了解,一种解决方案是使用.NET 3.5 SP1更新服务器。因为我还不想这样做,所以我只是从项目中的所有表单中删除了" action"属性,从而解决了问题。
阅读更多
回答
可以在此处使用该方法来设置form.action方法:
回答
上面所有提到的都是真的...
实际上,当安装3.5 SP1时,它将自动使用其自己的SP2更新2.0和3.0。
因此,如果我们将2.0用于应用程序,则会收到错误消息。
此外,.Net2.0上的SP1不会导致此问题。
回答
还有另一种解决方案。
编写一个javascript,以将表单的操作设置为Page_Load处的预期url,并在页面加载时注册脚本。
谢谢,
http://www.dilrukshidevapriya.blogspot.com
回答
Basta安装框架3.5 SP1的功能。