0

我是 Visual Studio 和 .net 的新手,如果我有一些基本错误,请原谅我。

这就是我想做的:使用 ajax 调用填充 kendoui 下拉列表的内容。现在我明白了最好使用 POST 操作,但我无法让它工作。

这是我在视图中的代码:

@(Html.Kendo().DropDownListFor(model => model.TypeId)
      .DataTextField("Shortname")
      .DataValueField("Id")
      .DataSource(source => source.Read(read => read.Action("GetObjectTypes", "ObjectType")))
)    

这是我的控制器代码:

[HttpPost] // use post to prevent 'leeching' 
public JsonResult GetObjectTypes()
{
    var objectTypes = _objecttypeRepository.All;
    return Json(objectTypes, JsonRequestBehavior.DenyGet);
}

Ajax 调用根本不会到达 GetObjectTypes。如果我删除 [HttpPost] 和“JsonRequestBehavior.DenyGet”,那么这段代码可以正常工作。

提前谢谢了。

4

2 回答 2

0

当 ComboBox/AutoComplete/Grid 等组件获取它们的数据时,它们总是使用 GET 并且没有选项可以更改它。

于 2012-07-11T16:53:51.703 回答
0

'GET' 实际上是检索资源(即您的下拉列表数据)的首选方法,请参阅HTTP 协议请求方法。'POST' 通常用于提交数据和创建新资源。

我自己没有做过,但如果你真的需要使用'POST',你可以在数据源配置中指定它,见 kendo.data.DataSource's transport.read.type

于 2012-09-20T08:27:12.480 回答