2

我正在使用 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, action, ID) 我试图使用这个访问引用 URL:

Request.UrlReferrer

但它即将为空。关于为什么会这样的任何想法?

4

1 回答 1

1

我认为直接设置 window.location 被浏览器对待与对待用户直接在地址栏中输入新 URL 相同。这意味着没有引荐来源网址,因为引荐来源网址是关于一个页面直接引用另一个页面(例如,通过链接)而不是浏览器只是转到另一个页面......

我认为解决您的问题的最简单方法是确保您的下拉列表采用发布(或获取)到 /Character/SetDefault 的表单,然后让您的 javascript 提交如下表单:

$('#playerCharacters').change(function() {
    this.form.submit();
});

然后,您只需将控制器中的 SetDefault 操作更改为具有 playerCharacters 参数,以便 MVC 将表单的请求值正确绑定到您的方法。

于 2009-04-06T03:03:08.050 回答