MVC Ajax编辑按钮从局部视图重新渲染其他局部视图

时间:2013-06-06 15:27:25

标签: c# ajax asp.net-mvc asp.net-mvc-4 partial-views

所以我在主视图中有2 partial viewsgridViewroundPanel

因此,当点击Gridview行中的“修改”按钮时,roundPannel应该使用行的信息进行更新。

我的编辑按钮:

Ajax.ActionLink("Edit", "EditConfig", new { id = DataBinder.Eval(c.DataItem, "QueueMonitorConfigurationsID") }, new AjaxOptions { UpdateTargetId = "configs" })

它所调用的功能:

[HttpGet]
public ActionResult EditConfig(int id)
{
    StorageConfigurationModel resultForPanel = new StorageConfigurationModel { };
    IEnumerable<StorageConfigurationModel> configList = (IEnumerable<StorageConfigurationModel>)Session["ConfigurationList"];
    foreach (StorageConfigurationModel configModel in configList)
    {
        if (configModel.QueueMonitorConfigurationsID == id)
        {
            resultForPanel = configModel;
            break;
        }
    }
    return PartialView("cbpnlNewUpdateConfigs", resultForPanel);
}

每次点击“修改”时,我都会打开一个新视图,当我只想刷新roundPanelpartialview)时。

1 个答案:

答案 0 :(得分:3)

我通过ajax调用打电话给我的控制器

$.ajax({
    url: "@(Url.Action("Action", "Controller"))",
    type: "POST",
    cache: false,
    async: true,
    data: { data1: 'data1' },
    success: function (result) {
        $(".Content").html(result);
    }
});

这样做我用控制器返回的局部视图替换div的内容。我不知道它是否会有所作为,但我的部分视图的方法我返回PartialViewResult而不是ActionResult。希望这会有所帮助。