【问题标题】:Kendo DropdownList Selected ValueKendo DropdownList 选定值
【发布时间】: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


    【解决方案1】:

    您已为下拉列表指定名称ProductsList,但您的模型不包含具有该名称的属性。将其更改为SelectedID,使其与您要绑定的属性匹配。

    注意建议你使用强类型版本

    @(Html.Kendo().DropDownListFor(m => m.SelectedID) ....
    

    现在,当您提交时,viewModel.SelectedID 的值将成为选择选项的值。

    旁注:设置SelectListItemSelected = false 属性(默认为false)是没有意义的,但无论如何,当您强烈绑定到模型属性时,它会被忽略。当您第一次渲染视图时将选择您的第三个选项,因为SelectedID = 3; 并且您可以选择value="3"

    还要注意SelectList 属性将为空,因为您不会为视图中的每个SelectListItem 生成控件(您也不应该)。确保在返回视图时重新填充集合。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-05
      • 2014-10-05
      • 2015-06-14
      • 1970-01-01
      • 2013-08-30
      • 1970-01-01
      • 2021-11-18
      相关资源
      最近更新 更多