Kendo DropDownList 问题在 MVC 上调用操作

Posted

技术标签:

【中文标题】Kendo DropDownList 问题在 MVC 上调用操作【英文标题】:Kendo DropDownList issue calling an action on MVC 【发布时间】:2014-07-18 00:34:59 【问题描述】:

我想从一个操作方法中填充一个下拉列表。当我第一次加载视图时它工作得很好,但是当我重新加载视图时它不会再次调用该操作。

问题是如果我从数据库中删除一个项目,下拉列表不会刷新结果。

我的观点:

 @(html.Kendo().DropDownListFor(model => model.IdSistema)
                    .Name("ddlSystems")
                    .OptionLabel("<.. Select an item ..>")
                    .DataTextField("DescSys")
                    .DataValueField("Id")
                    .HtmlAttributes(new  Style = "Width:243px;" )
                    .DataSource(source =>
                    
                        source.Read(read =>
                        
                            read.Action("GetAllSystems", "Systems");
                        )
                        .ServerFiltering(true);
                    )
                    .SelectedIndex(0) 
                  ) 

我的控制器:

public JsonResult GetAllSystems([DataSourceRequest] DataSourceRequest request)
 
    var items = (from row in _SystemService.GetAll()
                 orderby row.DescSys  
                 select new  row.Id, row.DescSys );
    return Json(items, JsonRequestBehavior.AllowGet);

谢谢你帮助我。

【问题讨论】:

【参考方案1】:
@(Html.Kendo().DropDownListFor(model => model.IdSistema)
                    .Name("ddlSystems")
                    .OptionLabel("<.. Select an item ..>")
                    .DataTextField("DescSys")
                    .DataValueField("Id")
                    .HtmlAttributes(new  Style = "Width:243px;" )
                    .DataSource(source =>
                    
                        source.Read(read =>
                        
                            read.Action("GetAllSystems", "Systems");
                            read.Type(HttpVerbs.Post);
                        )
                        .ServerFiltering(true);
                    )
                    .SelectedIndex(0) 
                  ) 

****************************************控制器*** *****************

[HttpPost]
public JsonResult GetAllSystems([DataSourceRequest] DataSourceRequest request)
 
    var items = (from row in _SystemService.GetAll()
                 orderby row.DescSys  
                 select new  row.Id, row.DescSys );
    return Json(items, JsonRequestBehavior.AllowGet);

【讨论】:

如果您要解释您在这里所做的事情与 OP 发布的内容之间的区别,这个答案将会大大改善。唯一的区别是read.Type(HttpVerbs.Post); 行还是其他?

以上是关于Kendo DropDownList 问题在 MVC 上调用操作的主要内容,如果未能解决你的问题,请参考以下文章

Kendo Ui Dropdownlist Set Visible via Javascript

Kendo DropDownList 问题在 MVC 上调用操作

Kendo DropDownList 默认选中值

Kendo UI 级联 DropdownList 是如何工作的?

Kendo Dropdownlist 移动端渲染

使用 knockout-kendo.js 和breeze.js 时不显示DropDownList 值