我正在调用控制器操作,如下所示:
$j.ajax({
url: url,
type: "post",
data: JSON.stringify(commentParam),
dataType: 'json',
contentType: "application/json; charset=utf-8",
success: function (data, status, jqxhr) {
$j('#' + commentsCtrlId + ' ul').prepend(data);
commentField.val('');
},
failure: function () {
alert("Error adding comment");
}
});
行动的样子:
[HttpPost]
public ActionResult Create(string commentBody, int parentObjectId, string parentObjectType, int actionId = 0)
{
try
{
// code to check security and pass info to the database. A comment model object is then passed back to the partial view
return PartialView("_Comment", comment);
}
catch (Exception ex)
{
Logger.Instance.LogError("Error in CommentController Create", ex);
return View("Error");
}
}
我可以打破这个方法并将数据传递给数据库。
我可以在部分视图上断点,所以可以看到数据正在那里传递好,但是当我回到我的ajax调用时,它永远不会得到响应(无论是成功还是失败)!我在任何地方都没有任何错误,绝对没有任何问题可以继续。有没有人就如何至少尝试调试这里发生的事情提出建议?
答案 0 :(得分:1)
您的方法返回一个视图(html),因此您需要将dataType
选项更改为'html'
$j.ajax({
url: url,
type: "post",
data: JSON.stringify(commentParam),
dataType: 'html', // modify
contentType: "application/json; charset=utf-8",
success: function (data, status, jqxhr) {
另请注意,您的方法应在PartialView
块中返回catch
(就像您对try
块所做的那样)
catch (Exception ex)
{
Logger.Instance.LogError("Error in CommentController Create", ex);
return PartialView("Error"); // modify
}