使用JQuery / AJAX渲染局部视图

时间:2014-08-07 22:11:06

标签: jquery ajax asp.net-mvc

我尝试渲染局部视图并放置在div元素之间。 我读了几篇文章,例如 Rendering a partial view with jquery 但仍然无法运作。

我犯了错误?

A。)我想要渲染部分视图的地方:

<div id="target">

        </div>

如果我放在和@ Html.Partial()之间,我收到错误!

B。)我如何调用控制器动作:

 $("#target").load('@Url.Action("GetMessageTypeView", "EmailMessages")');

我也尝试过:

$.ajax({
        url: '@Url.Action("GetMessageTypeView", "EmailMessages")',
        type: "POST",
    contentType: "application/json; charset=utf-8",
    success: function (data) {
        $('#target').html(data);
    }
});

在这两种情况下,我都调用了控制器操作,但没有结果。

C。)我的控制器动作:

public ActionResult GetMessageTypeView()
    {
        return PartialView("Partials/MessageTypes");
    }

我犯了错误? 是否可以渲染局部视图并将其放在页面中没有调用控制器的位置? 感谢

1 个答案:

答案 0 :(得分:3)

如果没有看到您提到的错误,我确实发现您的代码存在一个问题,您的ajax调用上的内容类型不正确应该是:

$.ajax({
        url: '@Url.Action("GetMessageTypeView", "EmailMessages")',
        type: "POST",
    contentType: "text/html; charset=utf-8",
    success: function (data) {
        $('#target').html(data);
    }
});

jquery期望从服务器返回json,但是当它获取部分视图的html时,它不知道如何处理它。我最近遇到了这个问题,我甚至没有收到错误,它只是没有做任何事情。