【发布时间】:2014-08-07 22:11:06
【问题描述】:
我尝试渲染部分视图并在 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");
}
我在哪里做错了? 是否可以在没有呼叫控制器的情况下呈现部分视图并将其放置在页面中的某个位置? 谢谢
【问题讨论】:
-
您的 div 格式错误。使用
<div id='target'></div>。 -
没有帮助。这有什么问题: ?我总是这样使用,并且这种格式有效。
-
你为什么要使用 javascript 而不仅仅是使用
@Html.Partial()? (action 方法似乎没有以任何方式修改局部视图) -
我必须在单击按钮时插入部分视图。你有什么想法来完成这个吗?
-
这没有意义,因为您没有将任何参数传递给
GetMessageTypeView(),因此您返回的视图将始终相同(因此为什么不最初加载它)。但是.load()方法似乎没有任何问题(有关.ajax()方法的问题,请参阅Phaeze 答案。我怀疑它的视图或视图名称。在GetMessageTypeView()中放置一个断点并检查它是否被命中。 PS. 要回复评论,请在前面加上“@Stephen..”
标签: jquery ajax asp.net-mvc