我最近安装了.net 3.5 SP1。当我部署一个包含表单及其操作集的已编译网站时:

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

我收到这个错误。
未找到方法:'无效System.Web.UI.HtmlControls.HtmlForm.set_Action(System.String)'。
如果未安装 SP1 的开发人员部署已编译的站点,则它可以正常工作。有谁知道有什么解决方案吗?

有帮助吗?

解决方案

.NET 3.5 SP1尝试使用action=""属性 (.NET 3.5 RTM 没有)。因此,当您部署时,您的代码尝试设置 HtmlForm.Action 属性并失败,因为部署目标上的 System.Web.dll 是 RTM 并且没有该属性的设置器。

其他提示

我不知道具体的解决方案,但 HtmlForm.set_Action() 是编译器创建的一个函数,它充当名为 Action 的属性的设置器。

当你这样做时:

public String Action { set { DoStuff(); } }

代码实际上变成了一个函数 设置动作.

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

我刚刚遇到了同样的问题。据我了解,这确实是由于我的电脑上有.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

安装框架 3.5 SP1 即可使用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top