Die Frage ist ziemlich einfach: Ich verwende @Html.EditorForModel()
Felder für mein Modell zu generieren. Dann füllt der Benutzer alle diese Felder und ich möchte dieses Feld über AJAX
senden, weil ich mehrere Server-Dienste ohne Seite neu laden sollte.ASP.Net MVC-Modell Bindung an Javascript
Ich googelte mehrere Ansätze, aber es scheint, dass es keinen Standard Weg gibt, solche Dinge zu tun. Ich meine, ich habe kein Objekt auf der Client-Seite, das ein Modell darstellt. Ich fand eine einzige Bibliothek ruft JSModel
(link), aber es scheint nicht zu funktionieren. Mein Code für jetzt ist:
@model Student
<script src="@Url.Content("~/scripts/jquery-1.12.2.min.js")" type="text/javascript" async="async"></script>
<script src="@Url.Content("~/scripts/Requester.js")" type="text/javascript" async="async"></script>
<script src="@Url.Content("~/scripts/jsmodel.js")" type="text/javascript"></script>
<script type="text/javascript">
var requester = new Requester(@Html.Raw(Json.Encode(new Student())));
function SendSignupRequest() {
requester.SendSignupRequest();
}
</script>
<h2>Student</h2>
<div>
@Html.EditorForModel()
</div>
<input type="button" value="Send" onclick="SendSignupRequest()"/>
Requester.js:
function Requester(rawModel) {
this.modelObj = new JSModel(rawModel);
this.SendSignupRequest = function() {
var model = modelObj.refresh();
var val = model.prop("Name");
alert(val);
}
}
Gibt es eine einfache Möglichkeit, ein Modellobjekt in JSON serialisiert und an den Server zu senden, ohne manuell ein Objekt mit Millionen von der Konstruktion document.getElementById
?
Siehe diese Frage SO: http://stackoverflow.com/questions/16717715/model-binding-with-jquery-ajax-serialize-not-working – cl3m