我正在使用 jquery 伪造自动回发,因为我使用的是 asp.net mvc。它在选择列表(下拉列表)中执行,如下所示:
$(document).ready(function() {
// autopostback for character drop down list
$('#playerCharacters').change(function() {
var charId = $('#playerCharacters option:selected').val();
window.location = "/Character/SetDefault/" + charId;
});
});
现在在/Character/SetDefault/[charID] ( Controller 、操作、ID)中,我尝试使用以下内容访问引用 URL:
Request.UrlReferrer
但它的结果为空。关于为什么会这样的任何想法吗?
最佳答案
我认为浏览器处理直接设置 window.location 的方式与处理用户直接在地址栏中输入新 URL 的方式相同。这意味着没有引用者,因为引用者是一个页面直接引用另一个页面(例如通过链接)而不是浏览器只是转到另一个页面...
我认为解决您的问题的最简单方法是确保您的下拉列表采用发布(或获取)到/Character/SetDefault 的表单,然后让您的 javascript 提交如下表单:
$('#playerCharacters').change(function() {
this.form.submit();
});
然后,您只需更改 Controller 中的 SetDefault 操作即可拥有playerCharacters 参数,以便 MVC 将表单的请求值正确绑定(bind)到您的方法。
关于jquery - jquery 重定向后在 asp.net mvc 中查找引用页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/702476/