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 メソッドはそれを変更しないことがわかりました。の値が変更されました。これは本当に私が欲しいものですが、表示されていないので問題ありません。