【发布时间】:2026-01-18 12:40:01
【问题描述】:
如果我有一个简单的局部视图:
@if (Model != null)
{
if (Model.Count() != 0)
{
foreach (var item in Model)
{
<li class="list-group-item list-group-item-success">
<div class="row">
<div class="col-lg-4">@item.FullName</div>
<div class="col-lg-4">@Resource.Price @item.SalesPrice</div>
<div class="col-lg-4"><div class="pull-right"><span class="glyphicon glyphicon-remove remove-glyph" aria-hidden="true"></span></div></div>
</div>
</li>
}
}
}
控制器代码:
[HttpPost]
public ActionResult ProductList(List<ProductViewModel> collection)
{
return PartialView("_ProductList", collection);
}
还有我的 ajax 请求:
$.ajax({
url: actionUrl,
contentType: "application/json; charset=utf-8",
dataType: 'json, html',
cache: false,
data: JSON.stringify({ collection: temporarySelectedItems }),
type: 'POST',
traditional: true
}).done(function (data) {
console.log(data)
});
我可以看到我的项目很好地序列化了,但是 .done 从不返回任何 html。
【问题讨论】:
-
当你实际返回
html时,为什么你的dataType期待json? -
你可以简单地省略
dataType,jQuery 会自动计算出来,所以即使你将返回 JSON,你的data参数也会被相应地反序列化。
标签: ajax asp.net-mvc asp.net-mvc-3 model-view-controller