【发布时间】:2016-03-28 12:38:15
【问题描述】:
问题很简单:我使用@Html.EditorForModel() 为我的模型生成字段。然后用户填写所有这些字段,我想通过AJAX 发送此字段,因为我应该在不重新加载页面的情况下执行多个服务器的服务。
我搜索了几种方法,但似乎没有标准的方法来做这些事情。我的意思是我在客户端没有代表模型的对象。我发现一个库调用 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 问题:stackoverflow.com/questions/16717715/…
标签: javascript asp.net asp.net-mvc asp.net-mvc-4