ASP.NET MVC 模型与序列化绑定
ASP.NET MVC model binding with serialize
我正在使用 serialize
和 JSON.stringify
方法对我的 ASP.NET MVC 应用程序进行 Ajax 调用。 MVC 无法绑定模型。
这是我的 JS 代码和强类型视图:
<script>
function saveDetails() {
jsonObj = $('#rdform').serialize();
$.ajax({
method: "POST",
url: "R/SaveDetail",
contentType: 'application/json; charset=utf-8',
dataType: "json",
data: JSON.stringify(jsonObj)
});
}
</script>
<form id="rdform">
<div>
<div>
@Html.LabelFor(m => m.LiIdH)
@Html.TextBoxFor(m => m.LiIdH)
</div>
<div>
@Html.LabelFor(m => m.LiIdR)
@Html.TextBoxFor(m => m.LiIdR)
</div>
</div>
<input type="button" onclick="saveDetails()" />
</form>
请求的有效负载如下所示:
"LiIdH=1&LiIdD=&LiIdR=2"
这是我的操作方法:
public bool SaveDetail(Detail detail)
我是不是漏掉了什么?
您 运行 陷入麻烦的原因是您同时使用了序列化和 JSON.stringify。 form.serialize returns 一个字符串值,传递给 JSON.serialize 时会用一对额外的引号引起来。调用操作方法的最简单方法是删除对 JSON.stringify 的调用,同时删除 contentType 选项ajax调用默认即可,如下图:
<script>
function saveDetails() {
$.ajax({
method: "POST",
url: "R/SaveDetail",
dataType: "json",
data: $('#rdform').serialize()
});
}
</script>
我正在使用 serialize
和 JSON.stringify
方法对我的 ASP.NET MVC 应用程序进行 Ajax 调用。 MVC 无法绑定模型。
这是我的 JS 代码和强类型视图:
<script>
function saveDetails() {
jsonObj = $('#rdform').serialize();
$.ajax({
method: "POST",
url: "R/SaveDetail",
contentType: 'application/json; charset=utf-8',
dataType: "json",
data: JSON.stringify(jsonObj)
});
}
</script>
<form id="rdform">
<div>
<div>
@Html.LabelFor(m => m.LiIdH)
@Html.TextBoxFor(m => m.LiIdH)
</div>
<div>
@Html.LabelFor(m => m.LiIdR)
@Html.TextBoxFor(m => m.LiIdR)
</div>
</div>
<input type="button" onclick="saveDetails()" />
</form>
请求的有效负载如下所示:
"LiIdH=1&LiIdD=&LiIdR=2"
这是我的操作方法:
public bool SaveDetail(Detail detail)
我是不是漏掉了什么?
您 运行 陷入麻烦的原因是您同时使用了序列化和 JSON.stringify。 form.serialize returns 一个字符串值,传递给 JSON.serialize 时会用一对额外的引号引起来。调用操作方法的最简单方法是删除对 JSON.stringify 的调用,同时删除 contentType 选项ajax调用默认即可,如下图:
<script>
function saveDetails() {
$.ajax({
method: "POST",
url: "R/SaveDetail",
dataType: "json",
data: $('#rdform').serialize()
});
}
</script>