MVC PartialView循环返回上一个PartialView

时间:2017-02-21 15:12:47

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

我有一个带有索引的MVC控制器,当用户完成表单处理时,它将循环显示多个PartialView

这是索引:

@section pageMain {
    <div id="partialView">
        @Html.Partial("SelectAccount", SUPR.Models.Account.GetAccounts());
    </div>
}

这很好用,我得到SelectAccount页面就好了。

我的问题是我有一个AJAX调用,当用户在SelectAccount页面上的表中选择一行时运行。应该发生的是PartialView然后被显示所选行的详细信息的另一个PartialView替换。这实际上确实有效,但在大约1秒后,它会循环回到SelectAccount PartialView,并且由于某种原因附加了查询字符串到URL。

Before

After

以下是AJAX调用的代码:

$.ajax({
    type: "GET",
    url: "/Review/GetReviewView",
    data: { profitCenter: profitCenterNo }
}).done(function (data) {
    $('#partialView').html(data);
});

GetReviewView控制器中发生的唯一情况是,我正在使用PartialView名称和型号返回PartialView。这是有效的,因为在我可以看到ReviewAccount视图的那个短暂时刻,正确的数据在字段中。

为什么会发生这种奇怪的行为?

1 个答案:

答案 0 :(得分:0)

您是否在JS中捕获event?如果您触发click事件,请将event参数添加到方法中,然后在方法结束时添加:

event.preventDefault()

看看它是否仍然存在。这听起来像是客户端JS问题,而不是C#问题。

你这样做的方式实际上很好。曾经有一个名为ASP-AJAX的微软库或其他东西,不记得了,因为我没有太多使用它。这个库基本上允许你用ASP-AJAX-METHOD,ASP-AJAX-REFRESH-TYPE来装饰HTML元素,它会自动执行类似于你现在正在做的事情。转到服务器并检索PartialView。