通过ajax更新的部分视图不会保留数据

时间:2014-01-23 03:06:32

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

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

//这是viewRates

@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");
}

1 个答案:

答案 0 :(得分:0)

如果搜索结果是持久的,只需在document.ready上重新加载部分