如果我有一个简单的局部视图:
@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。
答案 0 :(得分:0)
ajax调用看起来很好。只需修改控制器即可返回json结果。
[HttpPost()]
public JsonResult ProductList(List<ProductViewModel> collection)
{
//Do something
return Json(something);
}
如果您还没有,也应该使用JSON.NET。它很好地消除了JSON的序列化/反序列化的痛苦。