我有一个带有索引的 MVC 控制器,当用户完成表单过程时,它将循环浏览多个PartialView
。
以下是索引:
@section pageMain {
<div id="partialView">
@Html.Partial("SelectAccount", SUPR.Models.Account.GetAccounts());
</div>
}
这工作正常,我得到选择帐户页面就好了。
我的问题是我有一个 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
视图的那一瞬间,正确的数据在字段中。
关于为什么会发生这种奇怪的行为的任何想法?
您是否在 JS 中捕获event
?如果要触发click
事件,则将event
参数添加到该方法,然后在方法末尾添加:
event.preventDefault()
看看它是否仍然发生。这听起来像是客户端JS问题,而不是C#问题。
你这样做的方式实际上很好。曾经有一个名为ASP-AJAX之类的Microsoft库,不记得了,因为我不怎么使用它。这个库基本上允许你用ASP-AJAX-METHOD,ASP-AJAX-REFRESH-TYPE装饰HTML元素,它会自动做一些类似于你现在正在做的事情。转到服务器并检索分部视图。