问题非常简单:我使用 @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()"/>
请求者.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
的对象?
最佳答案
查看
@using (Html.BeginForm("action", "controller", FormMethod.Post, new { @class = "form-horizontal form-compact ", role = "form", id = "form1" }))
{
}
Java 脚本
var formdata = $("#form1").serializeArray();
$.ajax({
url: url,
type: 'POST',
data: formdata,
success: function (data) {
}
Controller
public ActionResult action(Model model)
{
//access data here
}
关于javascript - ASP.Net MVC 模型绑定(bind)到 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36262484/