【问题标题】:Partial view updated via ajax does not persist the data通过 ajax 更新的部分视图不会保留数据
【发布时间】:2014-01-28 05:10:00
【问题描述】:

在 MVC 5 项目中,索引页面包含 2 个部分视图。一个输入搜索参数,另一个显示费率(通过 ajax 调用)。一切都按预期工作,并且费率视图确实显示了返回的数据。发生的情况是,如果用户转到同一项目中的另一个页面,然后返回,则费率部分视图为空,尽管其他部分视图中的搜索参数仍然存在。有没有办法保存费率数据?

// 这个脚本在索引页面中,有 2 个部分视图

<script>
    $(function () {
        $('#viewSearch').submit(function () {
            if ($(this).valid()) {
                $.ajax({
                    url: '/Home/GetRates',
                    type: "POST",
                    cache: true,
                    dataType: 'html',
                    data: $("#viewSearch").serialize(),  
                    success: function (data) {
                        $('#viewRates').html(data);        
                    }, 
                });
            }
            return false;
        });
    });
</script>

// 这是收视率

@model Models.Rate

<table class="table table-bordered input-sm">

    @foreach (var item in Model)
    {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.Notes)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Daily)
            </td>
            <td>
                @Html.ActionLink("BOOK NOW", "Edit", new { id=item.Id })
            </td>
        </tr>   
    }

</table>

//这是控制器

    [HttpPost]
[ValidateAntiForgeryToken]
public ActionResult GetRates()
{
    if (ModelState.IsValid)
    {
       // code
       ...

       return PartialView("~/Views/Shared/Rates.cshtml", rates);
    }

    return PartialView("~/Home/Contact.cshtml");
}

【问题讨论】:

  • 如果搜索结果保持不变,只需重新加载 document.ready 上的部分
  • 是的,正如马特建议的那样,只需在 document.ready 上再次调用 AJAX(因为您已经有了搜索数据)
  • 数据并不像我想象的那样持久。它仅在我将数据存储在 Session 中后才起作用,而不是原来的 ViewBag。
  • 完成,非常感谢:)
  • @BenJunior 让我知道我是否可以在答案中添加任何其他内容,以便为未来的访问者改进它

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


【解决方案1】:

如果搜索结果保持不变,只需在 document.ready 上重新加载部分

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多