这个问题很简单:我使用@Html.EditorForModel()
为我的模型生成字段。然后用户填写所有这些字段,我想通过AJAX
发送该字段,因为我应该在不重新加载页面的情况下执行多个服务器的服务。ASP.Net MVC模型绑定到javascript
我搜索了几种方法,但似乎没有标准的方法来做这样的事情。我的意思是我没有代表模型的客户端对象。我发现一个库叫JSModel
(link),但它似乎不起作用。我现在的代码是:
@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);
}
}
有没有简单的方法来序列化模型对象在JSON并将其发送到服务器,而无需手动构造一个对象以百万计的document.getElementById
?
看到这个SO问题:http://stackoverflow.com/questions/16717715/model-binding-with-jquery-ajax-serialize-not-working – cl3m