使用jquery呈现局部视图
本文关键字:视图 现局 jquery 使用 | 更新日期: 2023-09-27 17:58:16
问题;
我有一个有两个局部视图的视图,一个用于处理客户端消息的视图和一个网格视图。
gridview是一个表单,可以删除更新项。删除或更新错误/成功消息时,会在tempdata中生成,但actionresult函数只呈现网格部分视图。
我需要一种方法来简单地呈现消息的部分视图,而不发布任何内容或将其重定向到控制器,因为数据已经存在于tempData中。
视图:
<div id="page-KnownRecipient">
@Html.Partial("ClientSideMessages")
@Html.Partial("_TabsPartial")
@if(Model != null)
{
using (Html.BeginForm())
{
@Html.Partial("_EditModePartial", Model);//Grid
}
}
</div>
来自gridview的所有回调路由只返回partialview EditModePartial,由于VIEW从未重新加载,因此在删除/更新回调后,应该显示在"ClientSideMessages"partial中的消息永远不会呈现。因此,我需要一种使用jquery渲染"ClientSideMessages"部分视图的方法,不需要新数据,只需要部分视图的实际渲染。
//----最后用了这样的东西;
视图;
<div id="detailsDiv">
@Html.Partial("ClientSideMessages")
</div>
控制器;
public ActionResult StatusMessages()
{
return PartialView("ClientSideMessages");
}
JS;
function getStatusMessages() {
var sURL = "/Home/StatusMessages"; // Just put the function in some base controller
var $detailDiv = $('#detailsDiv');
$.get(sURL, function (data) {
$detailDiv.html(data);
});
}
谢谢你的提示和指点!
如果您只想渲染
@Html.Partial("ClientSideMessages")
使用Jquery您可以:
<div id="target">
@Html.Partial("ClientSideMessages")
</div id="target">
并使用ajax:
$.ajax({
url: "/{Controle}/ClientSideMessages",
type: "POST",
contentType: "application/json; charset=utf-8",
data: {Your data},
error: function (data) {
{error message};
},
success: function (data) {
$('#target').html(data); // loading partialView into div
}
});
要做到这一点,您必须在控制器上创建一个操作,它只会返回客户端消息部分视图。一旦你做到了,你就必须做以下事情。
<div id="page-KnownRecipient">
<div id="clientMessages">
@Html.Partial("ClientSideMessages")
</div>
@Html.Partial("_TabsPartial")
@if(Model != null)
{
using (Html.BeginForm())
{
@Html.Partial("_EditModePartial", Model);//Grid
}
}
</div>
然后,您可以使用以下函数在任何回调中呈现客户端消息。
<script type="text/javascript>
$(function(){
var renderClientMessage = function(){
$("#clientMessages").load("ClientMessageAction_URL");
};
});
</script>