0

我正在开发一个 ASP.Net MVC 3 Web 应用程序。我有一个 Razor 视图,它使用户能够在数据库中创建一个新条目。在此创建视图中,有一个下拉列表,当用户选择一个选项时,将触发以下 JQuery 代码

$(document).ready(function () {

$("#gradeID").change(ChangeEventOfDDL);

function ChangeEventOfDDL() {
    var dropDownValue = $('#gradeID').val();
    //alert(dropDownValue);
    $.ajax({ type: "POST",
        url: '/FormEmployment/CreateSpecialtiesPartialView/' + dropDownValue,
        success: function (data) {
            $('#SpecialtiesContent').html(data);
        }
    });
}

});

正如您在此代码中看到的,我使用以下方法检索选定的下拉列表值

var dropDownValue = $('#gradeID').val();

当用户正在编辑条目时,我希望触发一段类似的代码,只是这次我想检索 QueryString 中的条目 ID,它看起来像这样

http://localhost:56354/FormEmployment/Edit/41

有谁知道我如何使用 JQuery 获得值 41 或者这是否可能?

谢谢你的帮助。

托尼。

4

2 回答 2

2

如果您可以假设您想要获取的值始终在 url 中的最后一个斜杠之后,您可以尝试:

location.pathname.substring(location.pathname.lastIndexOf("/") + 1)

通过使用 location.pathname,您不必担心查询字符串参数,因此 url 可以是http://localhost:56354/FormEmployment/Edit/41?foo=bar并且它仍然可以按预期工作。

于 2012-07-11T10:44:54.700 回答
2

您在示例中所追求的值实际上是路径的一部分,而不是查询字符串的一部分。

如果您确实想从查询字符串中获取值,则可以执行以下操作:

getParameterByName: function (name) {
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regexS = "[\\?&]" + name + "=([^&#]*)";
    var regex = new RegExp(regexS);
    var results = regex.exec(window.location.href);
    if (results == null)
        return "";
    else
        return decodeURIComponent(results[1].replace(/\+/g, " "));
}
于 2012-07-11T10:50:56.620 回答