c# – MVC SelectList中的LINQ查询结果为值和文本 – 无效
发布时间:2020-12-15 18:05:12 所属栏目:百科 来源:网络整理
导读:我试图使用LINQ查询的结果来填充MVC 5应用程序中的SelectList. LINQ查询返回客户ID. 模型 public partial class Pricelist{ public int CustomerID { get; set; } public int SelectedCustomer { get; set; } public Pricelist(int customerID,int selectedC
|
我试图使用LINQ查询的结果来填充MVC 5应用程序中的SelectList.
LINQ查询返回客户ID. 模型 public partial class Pricelist
{
public int CustomerID { get; set; }
public int SelectedCustomer { get; set; }
public Pricelist(int customerID,int selectedCustomer)
{
}
}
视图 @Html.DropDownList("custList")
控制器(1) var query = ((from s in db.Pricelists
select s.CustId).Distinct()).ToList();
int i = 1;
List<Pricelist> CustomerList = new List<Pricelist>();
foreach (var c in query)
{
int cust = c;
Pricelist p = new Pricelist(i,cust);
CustomerList.Add(p);
i++;
}
SelectList custList = new SelectList(CustomerList);
ViewBag.custList = custList;
return View();
返回使用Model类名填充的下拉列表 public ActionResult Create()
{
var query = (from s in db.Pricelists
select s.CustId).Distinct();
SelectList CustomerList = new SelectList(query);
ViewBag.custList = CustomerList;
return View();
}
指向我出错的地方,以及如何继续前行. 解决方法
我认为使用ViewBag来填充mvc中的下拉列表并不是那么好.
你应该改变你的模型以获得SelectedListItem列表并从PriceList列表中填充它,所以它应该如下所示: public class Model
{
public int CustomerID { get; set; }
public int SelectedCustomer { get; set; }
public IList<Pricelist> PriceList{get;set;}
public IList<SelectListItem> PriceListSelectListItem{get;set;}
{
get
{
var list = (from item in PriceList
select new SelectListItem()
{
Text = item.customerID.ToString(CultureInfo.InvariantCulture),Value = item.selectedCustomer.ToString(CultureInfo.InvariantCulture)
}).ToList();
return list;
}
set{}
}
}
现在你可以做这样的事情了: @Html.DropDownListFor(c=>c.CustomerID,Model.PriceList) 尝试使用这样的下拉列表,这看起来比在视图中使用ViewBag更专业. 控制器: var query = ((from s in db.Pricelists
select s.CustId).Distinct()).ToList();
int i = 1;
List<Pricelist> CustomerList = new List<Pricelist>();
foreach (var c in query)
{
int cust = c;
Pricelist p = new Pricelist(i,cust);
CustomerList.Add(p);
i++;
}
model.PriceList=result of your query
return View("ViewName",model);
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
