2012-07-11 101 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, " ")); 
} 
相關問題