我有一个带有索引的MVC控制器,当用户完成表单处理时,它将循环显示多个PartialView
。
这是索引:
@section pageMain {
<div id="partialView">
@Html.Partial("SelectAccount", SUPR.Models.Account.GetAccounts());
</div>
}
这很好用,我得到SelectAccount页面就好了。
我的问题是我有一个AJAX调用,当用户在SelectAccount
页面上的表中选择一行时运行。应该发生的是PartialView
然后被显示所选行的详细信息的另一个PartialView
替换。这实际上确实有效,但在大约1秒后,它会循环回到SelectAccount
PartialView
,并且由于某种原因附加了查询字符串到URL。
以下是AJAX调用的代码:
$.ajax({
type: "GET",
url: "/Review/GetReviewView",
data: { profitCenter: profitCenterNo }
}).done(function (data) {
$('#partialView').html(data);
});
GetReviewView
控制器中发生的唯一情况是,我正在使用PartialView
名称和型号返回PartialView
。这是有效的,因为在我可以看到ReviewAccount
视图的那个短暂时刻,正确的数据在字段中。
为什么会发生这种奇怪的行为?
答案 0 :(得分:0)
您是否在JS中捕获event
?如果您触发click
事件,请将event
参数添加到方法中,然后在方法结束时添加:
event.preventDefault()
看看它是否仍然存在。这听起来像是客户端JS问题,而不是C#问题。
你这样做的方式实际上很好。曾经有一个名为ASP-AJAX的微软库或其他东西,不记得了,因为我没有太多使用它。这个库基本上允许你用ASP-AJAX-METHOD,ASP-AJAX-REFRESH-TYPE来装饰HTML元素,它会自动执行类似于你现在正在做的事情。转到服务器并检索PartialView。