【发布时间】:2015-08-05 03:05:51
【问题描述】:
出于某种原因,我对 Kendo DropdownList 感到非常困惑。我似乎无法弄清楚如何从控制器的发布操作中获取所选项目。这是我拥有的一个简单的代码示例。
型号:
public class DemoViewModel
{
public DemoViewModel()
{
SelectList = new List<SelectListItem>();
}
public List<SelectListItem> SelectList { get; set; }
public string SelectedID { get; set; }
}
控制器动作:
public ActionResult Index()
{
ViewModel = new DemoViewModel();
var oneItem = new SelectListItem() { Value = "1", Text = "Item 1", Selected = false };
ViewModel.SelectList.Add(oneItem);
oneItem = new SelectListItem() { Value = "2", Text = "Item 2", Selected = false };
ViewModel.SelectList.Add(oneItem);
oneItem = new SelectListItem() { Value = "3", Text = "Item 3", Selected = false };
ViewModel.SelectList.Add(oneItem);
oneItem = new SelectListItem() { Value = "4", Text = "Item 4", Selected = false };
ViewModel.SelectList.Add(oneItem);
ViewModel.SelectedID = "3";
return View(ViewModel);
}
[HttpPost]
public ActionResult Index(DemoViewModel viewModel)
{
//Do something with the updated viewmodel
}
查看代码:
@(Html.Kendo().DropDownList()
.Name("ProductsList")
.BindTo(Model.SelectList)
.DataTextField("Text")
.DataValueField("Value")
.Value(Model.SelectedID)
)
现在,当我的 post 操作执行时,我得到一个传入的 DataViewModel 参数值,但 SelectList 属性为空,我不知道用户选择了列表中的哪个项目。我希望传递给我的 post 操作的 DataViewModel 看起来与传递给视图的 DataViewModel 完全相同,只是发生了变化。 IE。我希望 SelectList 包含与传递给视图相同的 4 个项目,以及为实际选择的项目设置为 true 的“Selected”属性。现在我知道我的假设是错误的。所以,我的问题是,如何将模型传递给包含项目列表的视图,在 kendo 下拉列表中显示该列表,并知道执行发布操作后选择了哪个项目?
【问题讨论】:
标签: asp.net asp.net-mvc asp.net-mvc-4 kendo-ui kendo-asp.net-mvc