【发布时间】:2023-03-30 17:36:01
【问题描述】:
问题;
我有一个包含两个部分视图的视图,一个视图用于处理客户端消息和一个网格视图。
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 的所有回调路由仅返回部分视图 EditModePartial,并且由于永远不会重新加载 VIEW,因此在删除/更新回调后永远不会呈现应该在“ClientSideMessages”部分中显示的消息。因此,我需要一种使用 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);
});
}
感谢您的提示和指点!
【问题讨论】:
-
你的问题不是很清楚。您是否只想隐藏和显示已呈现的标记?
-
没有数据是“新的”,可以从网格上的更新/删除功能中说。所以需要对 msgs 部分进行实际的重新渲染。!
标签: c# jquery asp.net-mvc gridview razor