Asp.net

在 .net 3.5 SP1 中設置表單的操作會導致編譯時出錯

  • January 28, 2020

我最近安裝了 .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(); } }

設置程式碼實際上變成了一個名為set_Action的函式。

我知道這不是最好的答案,但我希望它可以幫助您找到問題的根源!

引用自:https://stackoverflow.com/questions/34768