MVC と Jquery について次の質問があります。JQuery を使用してサーバー側のアクションを呼び出し、結果バインドをドロップダウン リストに返すことができるようにしたいと考えています。
現時点では、そのようなものがありますが、SelectList の代わりに、匿名型のコレクションを取得するだけです。
私は次のJQueryを持っています:
<script type="text/javascript">
(function ($) {
$.fn.cascade = function (options) {
var defaults = {};
var opts = $.extend(defaults, options);
return this.each(function () {
$(this).change(function () {
var selectedValue = $(this).val();
var params = {};
params[opts.paramName] = selectedValue;
$.getJSON(opts.url, params, function (items) {
opts.childSelect.empty();
$.each(items, function (index, item) {
opts.childSelect.append(
$('<option/>')
.attr('value', item.Id)
.text(item.Name)
);
});
});
});
});
};
})(jQuery);
$(function () {
$('#Location_CountryId').cascade({
url: '@Url.Action("Regions")',
paramName: 'countryId',
childSelect: $('#Location_RegionId')
});
$('#Location_RegionId').cascade({
url: '@Url.Action("Cities")',
paramName: 'regionId',
childSelect: $('#Location_CityId')
});
});
</script>
mvc 3でこのアクションを呼び出すもの:
public ActionResult Cities(int regionId)
{
IList cities;
using (DatingEntities context = new DatingEntities())
{
cities = (from c in context.cities
where c.RegionID == regionId
select new
{
Id = c.CityId,
Name = c.Name
}).ToList();
};
return Json(cities, JsonRequestBehavior.AllowGet);
}
私の質問は、IList の代わりに SelectList を返して適切にバインドできますか?
私のコードで例を教えてください。一部のみを投稿したシンプルさのためだけに、より複雑な動作をしています。
ありがとう