我尝试渲染局部视图并放置在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");
}
我犯了错误? 是否可以渲染局部视图并将其放在页面中没有调用控制器的位置? 感谢
答案 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时,它不知道如何处理它。我最近遇到了这个问题,我甚至没有收到错误,它只是没有做任何事情。