1

Kendo UI 用に有効にした Visual Studio 2012 Internet Application を使用しています。これは MVC4 C# および Razor View プロジェクトです。

6 つ以上のモデルがあり、最終的にはこれらのドロップダウンでカスケードします

私はチュートリアルを順を追って進めてきました(実際にそれをコピーし、コードで名前を変更しました)。

ページが読み込まれると、UI は見栄えがよくなりますが、DropdownLists(/comboboxes) にバインドされるデータはありません

私は本当に最初の DropDownList atm だけに焦点を当てています。

<p>
    <label for="clients">Clients:</label>
    @(Html.Kendo().DropDownList()
          .Name("clients")
          .HtmlAttributes(new { style = "width:300px" })
          .OptionLabel("Select Client...")
          .DataTextField("Client")
          .DataValueField("ClientID")
          .DataSource(source => {
               source.Read(read => {
                   read.Action("GetCascadeClients", "ComboBox");
               });
          })
    )
</p>

コードが到達したとき

.DataSource(source => {
               source.Read(read => {
                   read.Action("GetCascadeClients", "ComboBox");
               });
          })

このアクションを呼び出すことになっていますが、 このアクションはこのビューのコントローラーにありますか?

public JsonResult GetCascadeClients()
        {
            var Clients = db.Clients.AsQueryable();

            return Json(db.Clients.Select(c => new { ClientID = c.ClientID, Client = c.Client }), JsonRequestBehavior.AllowGet);

        }

私の質問は、私が何を間違っているのかということです。それはほとんどばかげているに違いありません.... (はい、データはデータベースにあり、他のコントロールでは正常にバインドされています。)

編集:下の 2 つのドロップダウン ボックスにテキストが表示され、上のドロップダウン ボックスにテキストが表示されないのは少し奇妙だと思いましたか?

ここに画像の説明を入力

ここでヒットしていないブレークポイント:

ここに画像の説明を入力

また、私は実行するこのスクリプトタグを持っていますが、おそらく何か問題がある可能性があります

<script>
$(document).ready(function () {
    var clients = $("#clients").data("kendoDropDownList"),
        countys = $("#countys").data("kendoDropDownList"),
        townShips = $("#townShips").data("kendoDropDownList");

    $("#get").click(function () {
        var clientsInfo = "\nclients: { id: " + clients.value() + ", name: " +  clients.text() + " }",
            countysInfo = "\ncountys: { id: " + countys.value() + ", name: " + countys.text() + " }",
            townShipsInfo = "\ntownShips: { id: " + townShips.value() + ", name: " + townShips.text() + " }";

        alert("Select Tract To Upload:\n" + clientsInfo + countysInfo + townShipsInfo);
    });
});
</script>
4

2 に答える 2

1

@Don Thomas Boyle、コードをコピーし、コントローラーを使用してjsonデータを返すことができ、オプションラベルに「Select Client ...」と表示されました。ブラウザのアドレスバーで手動で呼び出して返された json 文字列を取得できますか? コントローラーの名前は何ですか? 「Combobox」は怪しいコントローラー名のように聞こえます。

      <p>
<label for="clients">Clients:</label>
@(Html.Kendo().DropDownList()
      .Name("clients")
      .HtmlAttributes(new { style = "width:300px" })
      .OptionLabel("Select Client...")
      .DataTextField("SiteName")
      .DataValueField("ID")
      .DataSource(source => {
           source.Read(read => {
               read.Action("GetSites", "PlayGround");
           });
      })
)

これが私のコントローラーです:

namespace MyWebApp.Controllers
{

public class PlayGroundController : Controller
{
    readonly MyEntities context = new MyEntities();

    public JsonResult GetSites()
    {

        var sites = context.vSites.Select(s => new SitesVM
        {
            ID = s.ID,
            SiteName = s.SiteName

        }).OrderBy(s => s.SiteName);
        return Json(sites, JsonRequestBehavior.AllowGet);
    }



} 
于 2013-08-19T18:27:56.703 に答える