我在使用MVC,Ajax和保存的凭据时遇到了一些奇怪的行为。虽然我有一个解决方法,但我想知道是否有人可以帮我理解问题所在。
我正在使用DataTables jQuery插件来显示对Controller的操作方法的调用结果。以下是该电话的示例:
$('#grdTournamentList').on('init.dt', function () {
$("input[name='TournamentSelect']").on("change", function () {
$('#btnMoveNextStep1').removeAttr("disabled");
});
}).DataTable({
"ajax": {
"type": "POST",
"contentType": "application/json; charset=utf-8",
"url": "QuickStart/TopTenMostRelevantTournaments",
"data": {},
"dataType": "json",
"dataSrc": ""
}
});
});
如果我在用户首次登录期间按原样使用代码(允许在本地保存凭据),则会成功调用TopTenMostRelevantTournaments方法并填充网格。
请求:/ XXXX / XXXXX / 快速入门 / TopTenMostRelevantTournaments
如果用户关闭浏览器并尝试重新登录,则保存的凭据将绕过登录并将用户带到包含网格的视图。此时,对控制器的调用失败。在调试时,我看到生成的ajax调用的URL不正确。控制器出现两次:
请求:/ XXXX / XXXXX / 快速入门/快速入门/ TopTenMostRelevantTournaments
如果我在设置URL时更改了ajax调用以使用Razor @ URL.Action方法。通话无故障。
"url": "@Url.Action("TopTenMostRelevantTournaments", "QuickStart")",
我的问题是为什么会发生这种情况?为什么保存用户的凭据会导致这种奇怪的行为?请注意,该应用程序的其余部分工作正常。
提前致谢!
答案 0 :(得分:0)
查看答案的评论