Ich benutze asp.net mvc ajax.asp.net mvc Ajax.BeginForm Klon
Die Teilansicht wird mit Ajax.BeginForm (nur ein Beispiel):
<div id="divPlaceholder">
<% using (Ajax.BeginForm(new AjaxOptions { UpdateTargetId = "divPlaceholder" })) { %>
... asp.net mvc controls and validation messages
<input type="submit" value="Save" />
<% } %>
</div>
Nach der Aktualisierung, wenn die Validierung fehlschlägt, die html ist:
<div id="divPlaceholder">
<div id="divPlaceholder">
...form
</div>
</div>
Ich mag es nicht, dass die returned html wird eingefügt, stattdessen sollte das ursprüngliche div ersetzt werden.
Wahrscheinlich auf POST sollte ich nicht <div>
um Form in Teilansicht rendern oder das Div ohne ID rendern.
Was kann ich sonst in dieser Situation tun?
Ich dachte, dass ich vielleicht einen Helfer schreiben sollte, etwas wie Ajax.DivBeginForm, das Formular innerhalb von div auf GET rendert und das div auf POST versteckt.
Kann jemand einen guten Rat geben, wie man solchen Helfer schreibt (Ajax.DivBeginForm)?
Ich würde es gerne mit der Verwendung von Keyword arbeiten:
<% using (Ajax.DivBeginForm(new AjaxOptions { UpdateTargetId = "myId" })) { ... }%>
Ja, das ist ein guter Artikel, der es erklärt - http://jvance.com/blog/2010/02/20/MakingAnAjaxFormWithJQueryInASPdotNETMVC.xhtml. Aber ich möchte nicht jedesmal zusätzliches Javascript schreiben. –