如何在MVC中使用部分呈现概念在div中显示输出

时间:2011-09-20 07:38:19

标签: javascript asp.net-mvc json

我在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();
    }

1 个答案:

答案 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