我在MVC中使用渲染部分概念。它没有显示div中的输出。虽然调试一切正常(显示Staus 200 OK)但它不会进入成功块.Below是我的jquery函数。
function ShowNavigation() {
var jsonObj = {
'Display': 'Index',
taFormula: $('#taFormula').val()
};
$.ajax(
{
url: "/Home/Index",
type: "POST",
data: jsonObj,
dataType: "json",
contentType: 'application/json; charset=utf-8',
success: function (data) {
var message = data.Message;
$("#contentDiv").html(message).val();
}
});
}
我的控制器代码是:
[HttpPost]
public ActionResult Index(FormCollection collection)
{
var val = collection["taFormula"].ToString();
ViewBag.Output = GetValue(val);
return View();
}
答案 0 :(得分:2)
删除datatype: "json"
位。你从服务器接收回来的html,而不是json数据,但由于这个设置,它试图解析它并失败。如果你有一个错误的回调函数,它会进入那个。
此外,您不需要.val()
$("#contentDiv").html(message).val();
尝试向ajax调用添加错误处理程序,看看是否能为您提供更多信息:
error: function (xhr, status, error) {
alert(status + " : " + error);
}
试试这个json对象:
data: JSON.stringify(jsonObj),
您可能需要为旧浏览器添加json.js。