Asp.net mvc 4 id和值为的关系表的剑道组合示例
我在asp.net mvc 4的razor视图中使用剑道ui,当列表通过ajax从动作加载并向服务器发送参数时,遇到剑道组合问题,如以下示例所示: 因为该表有超过2000行 当我加载编辑页面时,组合按预期加载并过滤数据,但该字段的值为-[object] 我确实声明了.DataTextFieldProfName+.DataValueFieldID 我的客户控制员:Asp.net mvc 4 id和值为的关系表的剑道组合示例,asp.net-mvc-4,combobox,kendo-asp.net-mvc,Asp.net Mvc 4,Combobox,Kendo Asp.net Mvc,我在asp.net mvc 4的razor视图中使用剑道ui,当列表通过ajax从动作加载并向服务器发送参数时,遇到剑道组合问题,如以下示例所示: 因为该表有超过2000行 当我加载编辑页面时,组合按预期加载并过滤数据,但该字段的值为-[object] 我确实声明了.DataTextFieldProfName+.DataValueFieldID 我的客户控制员: public ActionResult Edit(int id = 0) { Clients clients
public ActionResult Edit(int id = 0)
{
Clients clients = db.Clients.Find(id);
if (clients == null)
{
return HttpNotFound();
}
ViewData["MyAgency"] = new SelectList(db.Agency, "ID", "AgentName", clients.AgencyId);
ViewData["MyCategory1"] = new SelectList(db.CategoryTbl, "ID", "category", clients.CategoryId);
List<SelectListItem> obj = new List<SelectListItem>();
obj.Add(new SelectListItem { Text = "male", Value = "1" });
obj.Add(new SelectListItem { Text = "female", Value = "2" });
obj.Add(new SelectListItem { Text = "choose", Value = "0" });
ViewData["MyMin"] = obj;
ViewBag.ProffID = new SelectList(db.ProfTBL, "ID", "ProffName", clients.ProffID);
ViewBag.Metapel = new SelectList(db.Workers, "ID", "WorkerName", clients.Metapel);
return View(clients);
}
public ActionResult ProffVM_Read(string text)
{
var Proff_Tbl = db.ProfTBL.Select(proff => new ProffVm { ID = proff.ID, ProffName = proff.ProffName });
if (!string.IsNullOrEmpty(text))
{
Proff_Tbl = Proff_Tbl.Where(p => p.ProffName.Contains(text));
}
return Json(Proff_Tbl, JsonRequestBehavior.AllowGet);
}
剑道组合:
@Html.Label("Proff")
@(Html.Kendo().ComboBoxFor(model => model.ProffID)
.Name("proffCbo")
.DataTextField("ProffName")
.DataValueField("ID")
.Events(e => e
.Select("proffCbo_select")
.Change("proffCbo_change")
)
.DataSource(source =>
{
source.Read(read =>
{
read.Action("ProffVM_Read", "Proff")
.Data("onAdditionalData");
});
})
)
我哪里错了???
我可以将此组合更改为文本框,但是。。。我必须认识到这种魔力
谢谢更改这两行
var Proff_Tbl = db.ProfTBL.Select(proff => new ProffVm { ID = proff.ID, ProffName = proff.ProffName });
Proff_Tbl = Proff_Tbl.Where(p => p.ProffName.Contains(text));
到
如果您正在使用ComboBoxFor,则需要确保组合框的名称与模型名称->.NameProffIDi相同,正如您所说,将名称更改为->.nameProffId,并且仍然获得字段值[object]。当我使用控制台检查字段值==>$ProffId.val时,我看到该值未定义。很可能您正在设置新的ProffVm{ID=proff.ID…,应该是ProffVm吗{ProffID=…感谢您的回复,但是ProffID不是表DB中正确的字段名。表中的字段是ID。如果您可以给出var Proff_Tbl=…的示例代码,这将非常有帮助……否则我的代码会出错。感谢您的回答,问题出在中。现在问题是保存组合框数据。我看到值字段是检查>>$ProffCbo.val时更正
var Proff_Tbl = db.ProfTBL.Select(proff => new ProffVm { ID = proff.ID, ProffName = proff.ProffName }).ToList();
Proff_Tbl = Proff_Tbl.Where(p => p.ProffName.Contains(text)).ToList();