从内部重新加载部分视图

时间:2013-08-05 14:32:32

标签: jquery asp.net-mvc

那么,

我有一个使用复杂模型生成VIEW的PartialView。 我有一个按钮,我想完全重新生成我的PartialView

    @if (!Model.editFlag)
{
<button id="EditButton" class='btn btn-small'>Edit</button>
}
else
{
<button  class='btn btn-small'>Update</button>
}

这是我的Ajax CALL

    $.ajax(
{
    type: "POST",
    url: "@Url.Action("DeviceDetails_Edit","DeviceLayout")"  ,
    data:
    {
        DeviceID: '@Model.DeviceID',
        DeviceName: '@Model.DeviceName',
        DeviceDescription: '@Model.DeviceDescription',
        editFlag: '@Model.editFlag',
    },
    cache:false,
    success: function(html) 
        { 
            alert('success');
        },
        error: function(e) 
            { 
            alert("errorn"); 
            }

});
});

从控制器,我有一个ActionResult,它返回一个带有我的新特定模型的局部视图 返回PartialView(“_ DeviceDetails”,model);

在我的视图中,存在更多更多PartialView的

如何解决此问题?

1 个答案:

答案 0 :(得分:2)

我假设您的页面上已有div。使用jQuery,您可以在单击事件按钮中清除div元素,以获取样本

<div id="myView"></div>

使用jquery,您可以使用empty方法清除div:

$("button").click (function (e) {

   // clear the html on the  div
   $("#myDiv").empty();


    // make a post to reload the div:
    $.ajax(
    {
        type: "POST",
        url: "@Url.Action("DeviceDetails_Edit","DeviceLayout")"  ,
        data:
        {
            DeviceID: '@Model.DeviceID',
            DeviceName: '@Model.DeviceName',
            DeviceDescription: '@Model.DeviceDescription',
            editFlag: '@Model.editFlag',
        },
        cache:false,
        success:function(html) 
                { 
                    // fill the div with the html returned by action
                    $("#myView").html(html);
                },
        error:  function(e) 
                { 
                    alert("errorn"); 
                }
    });   

});