如何解决试图从数据库绑定Dropdownlist出现错误
嗨,我正在尝试将Dropdownlist与来自db的值绑定错误 详细如下 型号
public class Ipcell
{ public List<ddlupc> upcList { get; set; }
}
public class ddlupc
{
public string UscCode { get; set; }
public string UscDesc { get; set; }
}
控制器 从jQuery Ajax值被调用
public PartialViewResult RaiseBill(List<Ipcell> casedetail1)
{List<Ipcell> result1 = new List<Ipcell>();
conn.open();
string qry1 = "select IUM_USC_CODE,IUM_USC_DESC from V_IP_USC_MAST";
OracleCommand command1 = new OracleCommand(qry1,conn);
OracleDataReader reader1 = command1.ExecuteReader();
List<ddlupc> objlist = new List<ddlupc>();
Ipcell member1 = new Ipcell();
while (reader1 != null && reader1.Read())
{
objlist.Add(new ddlupc { UscCode = reader1[0].ToString(),UscDesc = reader1[1].ToString() });
result1.Add(member1);
}
member1.upcList = objlist;
conn.Close();
if (casedetail1!=null)
{
ViewBag.Caseid = casedetail1[0].CaseId;
}
return PartialView("RaiseBill",result1);
}
视图
@model Smart_M.Models.Ipcell
<div>
<div style="padding-left:5%">Usc Code</div><span style="padding-left:5%">@Html.DropDownList("upcList",Model.upcList) </span><br />
</div>
获取错误“无法从'System.collections.Generic.List
解决方法
DropDownList使用SelectListItem进行数据绑定示例:
@Html.DropDownList("Names",new List<SelectListItem>
{
new SelectListItem{ Text="NAME1",Value = "1" },new SelectListItem{ Text="NAME2",Value = "2" },new SelectListItem{ Text="NAME3",Value = "3" },})
例如,请将Model.upcList更改为List
<div style="padding-left:5%">Usc Code</div>
<span style="padding-left:5%">
@Html.DropDownList("upcList",Model.upcList.Select(x => new SelectListItem(){Text
= x.UscDesc,Value = x.UscCode }).ToList())
</span>
OR
<div style="padding-left:5%">Usc Code</div>
<span style="padding-left:5%">
@Html.DropDownList("upcList",new SelectList(Model.upcList,"UscCode","UscDesc"))
</span>
,
正在获取错误“无法从 将'System.collections.Generic.List
转换为'string'。 任何想法将不胜感激。
因为绑定到@Html.DropDownList
的数据源是 IEnumerable<SelectListItem>
类型,但是Model.upcList
是List<ddlupc>
类型,这导致了错误
要解决该问题,您可以将Model.upcList转换为IEnumerable形式,如下所示:
@Html.DropDownList("upcList","UscDesc"))
您还可以参考this,了解在asp.net核心中绑定dropdownlist的更多方法。
更新
public PartialViewResult RaiseBill(List<Ipcell> casedetail1)
{List<Ipcell> result1 = new List<Ipcell>();
conn.Open();
string qry1 = "select IUM_USC_CODE,IUM_USC_DESC from V_IP_USC_MAST";
OracleCommand command1 = new OracleCommand(qry1,conn);
OracleDataReader reader1 = command1.ExecuteReader();
List<ddlupc> objlist = new List<ddlupc>();
Ipcell member1 = new Ipcell();
while (reader1 != null && reader1.Read())
{
objlist.Add(new ddlupc { UscCode = reader1[0].ToString(),UscDesc = reader1[1].ToString() });
result1.Add(member1);
}
member1.upcList = objlist;
conn.Close();
if (casedetail1!=null)
{
ViewBag.Caseid = casedetail1[0].CaseId;
}
ViewData["dropSrc"] = objlist ;
return PartialView("RaiseBill",result1);
}
RaiseBill视图:
@model IEnumerable<Smart_M.Models.Ipcell>
@{
ViewData["Title"] = "IncellTest";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<div>
<div style="padding-left:5%">Usc Code</div>
<span style="padding-left:5%">@Html.DropDownList("upcList",new SelectList((IEnumerable<Smart_M.Models.ddlupc>)ViewData["dropSrc"],"UscDesc")) </span>
<br />
</div>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。