Das Festlegen der Aktion eines Formulars in .net 3.5 SP1 führt beim Kompilieren zu Fehlern

StackOverflow https://stackoverflow.com/questions/34768

  •  09-06-2019
  •  | 
  •  

Frage

Ich habe kürzlich .net 3.5 SP1 installiert.Als ich eine kompilierte Website bereitstellte, die ein Formular mit seinem Aktionssatz enthielt:

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

Ich habe diesen Fehler erhalten.
Methode nicht gefunden:„Void System.Web.UI.HtmlControls.HtmlForm.set_Action(System.String)“.
Wenn ein befreundeter Entwickler, der SP1 nicht installiert hat, die kompilierte Site bereitstellt, funktioniert es einwandfrei.Kennt jemand hierfür Lösungen?

War es hilfreich?

Lösung

.NET 3.5 SP1 versucht, das Attribut action="" zu verwenden (.NET 3.5 RTM nicht).Wenn Sie also bereitstellen, versucht Ihr Code, die HtmlForm.Action-Eigenschaft festzulegen, was jedoch fehlschlägt, da die System.Web.dll auf dem Bereitstellungsziel RTM ist und keinen Setter für die Eigenschaft hat.

Andere Tipps

Ich kenne die konkrete Lösung nicht, aber HtmlForm.set_Action() ist eine vom Compiler erstellte Funktion, die als Setter für eine Eigenschaft namens Action fungiert.

Wenn Sie das tun:

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

Der Satz Code wird tatsächlich zu einer aufgerufenen Funktion set_Action.

Ich weiß, das ist nicht die beste Antwort, aber ich hoffe, sie hilft Ihnen, die Ursache Ihrer Probleme zu finden!

Ich bin gerade auf das gleiche Problem gestoßen.Soweit ich weiß, liegt die Ursache tatsächlich darin, dass auf meinem PC .NET 3.5 SP1 installiert ist, auf dem Server, auf dem ich das Projekt bereitgestellt habe, dies jedoch nicht.
Soweit ich weiß, besteht eine Lösung darin, den Server mit .NET 3.5 SP1 zu aktualisieren.Da ich das noch nicht tun möchte, habe ich einfach das Attribut „Aktion“ aus allen Formularen im Projekt entfernt und das Problem wurde damit gelöst.
Mehr lesen

Könnte das gebrauchen Methode hier So legen Sie die form.action-Methode fest:

Alles oben Gesagte ist wahr...

Tatsächlich werden bei der Installation von 3.5 SP1 automatisch 2.0 und 3.0 mit ihrem eigenen SP2 aktualisiert.Wenn Sie also 2.0 für eine Anwendung verwenden, wird die Fehlermeldung angezeigt.

Darüber hinaus verursachte SP1 unter .Net2.0 das Problem nicht.

Dafür gibt es eine andere Lösung.Schreiben Sie ein Javascript, das die Aktion des Formulars bei Page_Load auf die erwartete URL setzt und das Skript beim Laden der Seite registriert.

Danke,http://www.dilrukshidevapriya.blogspot.com

Zuerst das Framework 3.5 SP1 installieren, das funktioniert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top