1

ASP.NET MVC アプリケーションがあり、HTML ヘルパーを含むドロップダウン リストに Kendo UI を使用しています。データを編集するためのビューのデフォルト値を設定したい場合、.Value() は機能しません。ビューのコードは次のとおりです。

@(Html.Kendo().DropDownListFor(m => m.UserName)
         .Name("userName")
         .DataTextField("UserName")
         .DataValueField("UserId")
         .BindTo(Model.Mechanics)
         .Value(Model.UserName)
         )

これは、データを取得するアクションのコードです。

public ActionResult EditServiceCart(int id)
        {
        var servCart = db.ServiceCarts.Where(x => x.CarId == id).SingleOrDefault();

        var mechanics = db.UserProfiles.Select(m => new MechanicsViewModel
        {

            UserId = m.UserId,
            UserName = m.UserName

        }).ToList();

        var model = new EditServiceCartViewModel
        {

            ServiceCartId = servCart.ServiceCartId,
            Mechanics = mechanics,
            UserName = servCart.UserName

        };

        return View(model);
    }

ハードコーディングされたバインディングを使用する場合 (例 .BindTo(new string[] {"Mechanic 1", "Mechanic 2", "Mechanic 3"})) .Value() は正常に動作しますが、私の場合はそうではありません。ドロップダウンに表示される値が HTML にあり、.Value メソッドはそれを変更しないことがわかりました。の値が変更されました。これは本当に私が欲しいものですが、表示されていないので問題ありません。

4

1 に答える 1

3

あなたのコードは

@(Html.Kendo().DropDownListFor(m => m.UserName)
         .Name("userName")
         .DataTextField("UserName")
         .DataValueField("UserId")
         .BindTo(Model.Mechanics)
         .Value(Model.UserId) // Model.UserId(or something like that) NOT Model.UserName
         )

Kendo に「 DropdownList の値として使用します」と伝えたからですUserIdModel.UserName.Value()メソッドに渡すと、Kendo UI はその値を見つけることができません

于 2013-06-11T07:25:03.163 に答える