2012-04-12 93 views
0

我正在MVC3中創建一個應用程序,其中我有很多下拉列表 現在基於在第一個下拉列表中選擇的值,第二個drodown被填充。 我需要爲此編寫Ajax,並且我正在經歷一段艱難的時期。Ajax函數從下拉中獲取選定的值並將該值傳遞給控制器​​中的函數

我有我的第一個下拉菜單「選擇課程」,現在選擇哪個課程在該特定課程ID的幫助下,從數據庫中選擇相應的狀態。

例如,如果課程是「MCA」,州下拉式課程必須填充諸如馬哈拉施特拉邦,拉賈斯坦邦和很快的州。

我嘗試了阿賈克斯下面的代碼,但它不工作,並給了我一個錯誤

$("#Course").change(function() { 
     var Courseid = $("#Course").val(); 
     var urlCourselocation = '@Url.Action("FetchstatebyCourse")'; 
     $.ajax({ 
      type: "POST", 
      url: urlCourselocation, 
      data: { id: Courseid }, 
      success: function (data) { 
          $('#State').empty(); 
          $('#State') 
         .append($('<option>', { value: "0" }) 
         .text("-- Select State --")); 
        $.each(returndata, function (key, value) { 

        $('#State') 
         .append($('<option>', { value: value.Value }) 
         .text(value.Text)); 
       }); 
       } 
     }); 
    }); 

,並在控制器我已經寫了下面的功能:

public ActionResult FetchHobbyDetailByHobbyId(int Id) 
    { 
     LearnerService learnerservice = new LearnerService(); 
     /* Here is some Code to fetch the state id from the database*/ 
     ICollection<ProvincialState> state = learnerservice.FetchStateByStateid(stateid); 
     ViewBag.State = state; 

     if (HttpContext.Request.IsAjaxRequest()) 
      return Json(new SelectList(
          state, 
          "ProvincialStateID", 
          "ProvincialStateName")); 
     return View(); 
    } 

請幫我代碼和糾正我,如果我錯了..

+0

什麼是錯誤,是它在服務器端或客戶端? – 2012-04-12 18:52:38

+0

@GregB嘿對不起,它不給我錯誤,但是當我選擇課程它不會填充任何內部狀態下拉列表除了這個:「 - 選擇狀態---」 – user1274646 2012-04-12 19:00:16

+0

如果你有螢火蟲安裝,我會看看後的反應和看看你回來什麼樣的數據(可能是空的)。另外我想你可能會考慮只返回Json(州),看看它給你什麼。另外,通過服務器端代碼的步驟,並確保它返回的東西 – 2012-04-12 19:05:45

回答

0

哦,我想我看到了問題... 不應該:

$.each(returndata, function (key, value) { 

$.each(data, function (key, value) { 
+0

嘿thanx一噸確實是愚蠢的錯誤...現在它的工作! – user1274646 2012-04-12 19:29:06