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のtransport.read.typeを参照してください。

于 2012-09-20T08:27:12.480 に答える