C# ASP.NET MVC-在不编写DOM代码的情况下将下拉列表刷新到ViewModel中
我的应用程序中有一个ViewModel,如下所示:C# ASP.NET MVC-在不编写DOM代码的情况下将下拉列表刷新到ViewModel中,c#,asp.net-mvc-3,jquery,asp.net-ajax,C#,Asp.net Mvc 3,Jquery,Asp.net Ajax,我的应用程序中有一个ViewModel,如下所示: public class ItemViewModel { public string Name { get; set; } public string SelectedType { get; set; } public IEnumerable<Type> Types { get; set; } public string SelectedSubtype { get; set; } publ
public class ItemViewModel {
public string Name { get; set; }
public string SelectedType { get; set; }
public IEnumerable<Type> Types { get; set; }
public string SelectedSubtype { get; set; }
public IEnumerable<Subtype> Subtypes { get; set; }
}
嗯,当我想刷新我的子类型dropdownlist时,我必须编写大量DOM代码来生成新选项
$('#SelectedType').change(function() {
$.get('/json/GetSubtypesFromType', { 'type': $(this).val() }, function(result) {
var options = '';
for (var count = 0; count < result.length; count++) {
options += "<option value='" + result[count].ID + "'>" + result[count].Description + "</option>";
}
$('#SelectedSubtype').html(options);
});
});
$('#SelectedType')。更改(函数(){
$.get('/json/GetSubjectsFromType',{'type':$(this.val()}),函数(result){
var选项=“”;
对于(变量计数=0;计数
是否有办法将新选项绑定到可枚举到my
ViewModel
中的子类型,而不是编写此代码以生成选项。发布表单时,我需要检索新的可枚举项,但我希望将新值绑定到ViewModel
集合中。观察:您正在使用AJAX“获取”值,并希望将新值添加到DropDownList帮助器中
建议1:创建自定义Ajax下拉列表帮助器
请在上阅读这篇文章
又一个好裁判
特别有价值的参考
建议2:使用部分操作创建下拉列表
作为@Html.Action(“{Action},{Controller}”,新的{id={param})
或者从jquery作为
$('#dropdowndiv').load('/{Controller}/{Action}')加载
,action partials首先调用一个action方法,然后呈现一个partial视图。这非常适合于您希望动态创建selectlist的情况谢谢,Dave a。两个建议都很好,我会先尝试实现第二个。如果我不能,第一个解决方案也会帮助我。谢谢!!!
$('#SelectedType').change(function() {
$.get('/json/GetSubtypesFromType', { 'type': $(this).val() }, function(result) {
var options = '';
for (var count = 0; count < result.length; count++) {
options += "<option value='" + result[count].ID + "'>" + result[count].Description + "</option>";
}
$('#SelectedSubtype').html(options);
});
});