从客户端,我想将一些数据发送到服务器并接收一些<div>
标记,这些标记响应View
(另一个控制器)。
我的ajax代码如下所示:
var sortTopic = function () {
var $list = [],
$address = '',
$formData = new FormData();
/* do something here to set value to $list and $address */
$formData.append('Category', $list);
$formData.append('Address', $address);
$formData.append('Tags', '[KM]');
$formData.append('Skip', 0);
$.ajax({
url: '/Topic/Sort',
type: 'POST',
data: $formData,
dataType: 'json',
contentType: false,
processData: false,
success: function (data) {
if (!data.success) {
$('.jumbotron').html(data.ex);
} else {
$('.jumbotron').html(data);
}
},
error: function (xhr) {
alert(xhr.status); //xhr.status: 200
}
});
};
在TopicController
中,行动Sort
是:
[AllowAnonymous]
[HttpPost]
public ActionResult Sort(SortTopicViewModel model)
{
try
{
if (model.IsValidSortTopicModel())
{
return PartialView("../Home/_Timeline", new TopicMaster().Sort(model));
}
return Json(new { success = false, ex = "Invalid model." });
}
catch (Exception e) { return Json(new { success = false, ex = e.Message }); }
}
我确定model
有效且方法new TopicMaster().Sort(model)
工作正常(因为我已经设置了断点来查看返回数据)。部分视图_Timeline
是HomeController
的部分视图。
我的问题是:我不明白为什么我在ajax中获得状态代码为200的error
:
error: function (xhr) {
alert(xhr.status); //xhr.status: 200
}
你能解释一下吗?
谢谢!
答案 0 :(得分:0)
正如你告诉你收到的<div>
回复时不是json而你在ajax中提到dataType:"json"
只是删除它。这将解决您的问题。如果没有得到你在ajax中提到的有效响应,就会出现错误200。
对于mor信息,您可以阅读documentation