2010-03-12 52 views
6

我有一個C#MVC應用程序,它是根據所選日期填充下拉列表。一旦選擇日期,我將通過AJAX/jQuery將它發送給一個動作。該操作獲取該日期返回的項目列表。Geting SelectList到MVC視圖使用AJAX/jQuery

這是我的問題所在。我之前已經完成了它,我從動作渲染了部分視圖,並將SelectList作爲模型傳遞給了它。不過,我真的只是想在原始視圖中內聯,所以我希望有一些方法可以返回SelectList,並從那裏做一些神奇的Javascript/JQuery將它放到下拉列表中。

有沒有人曾經這樣做過?如果是這樣,那麼在調用load()返回SelectList之後,客戶端上的結果是什麼?

我做了這樣的事情以前,當我剛返回一個字符串或其他值呈現爲連勝文:

$("#returnTripRow").load("/Trip.aspx/GetTripsForGivenDate?date=" + escape(selection)); 

但我不知道如何截取數據和變形它變成了Html.DropDown()調用,或者等價的。

任何想法?

感謝,

克里斯

回答

17

假設你有一個控制器的行動,將飼料中的數據進行下拉:

public ActionResult Cars() 
{ 
    return Json(new[] { 
     new { id = "bmw", name = "BMW" }, 
     new { id = "mer", name = "Mercedes" }, 
     new { id = "aud", name = "Audi" } 
    }, JsonRequestBehavior.AllowGet); 
} 

而在你的看法:

$.getJSON('/home/cars', { }, function(cars) { 
    var list = $('select#cars'); 
    list.find('option').remove(); 
    $(cars).each(function(index, car) { 
     list.append('<option value="' + car.id + '">' + car.name + '</option>'); 
    }); 
}); 
+0

美麗,做到了!謝謝。 – Chris 2010-03-12 17:37:41