使用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);
    });
}

谢谢你的提示和指点!

使用jquery呈现局部视图

如果您只想渲染

@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>