2012-07-11 132 views
0

我正在开发一个ASP.Net MVC 3 Web应用程序。我有一个Razor View,它可以让用户在数据库中创建一个新条目。在此创建视图,有一个下拉列表,当用户选择一个选项,下面的jQuery代码火灾ASP.Net MVC使用JQuery获取QueryString值

$(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(); 
的下拉菜单中选择值内看到

当一个用户正在编辑的条目,我要火过类似的一段代码,只是这一次,我想检索条目ID的查询字符串,这将是这个样子

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

有谁知道我可以如何使用JQuery获得值41,或者这甚至有可能吗?

感谢您的帮助。

Tony。

回答

2

如果你可以做一个假设,你想要得到的值总是在URL中的最后一个斜线之后,你可以尝试:

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

使用location.pathname,你不必担心查询字符串参数,所以url可能是http://localhost:56354/FormEmployment/Edit/41?foo=bar,它仍然会按预期工作。

+0

谢谢,这很好地工作。 – tgriffiths 2012-07-11 10:55:57

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, " ")); 
}