我有一个 ASP.NET MVC 应用程序,我使用 Kendo UI 作为带有 HTML Helpers 的下拉列表。当我想为用于编辑数据的视图设置默认值时,.Value() 不起作用。这是我的视图代码:
@(Html.Kendo().DropDownListFor(m => m.UserName)
.Name("userName")
.DataTextField("UserName")
.DataValueField("UserId")
.BindTo(Model.Mechanics)
.Value(Model.UserName)
)
这是获取数据的 Action 的代码:
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 方法不会更改它。它改变了 的值,这确实是我想要的,但没关系,因为它没有显示。