2017-06-22 106 views
-1

我试图创建一个新的SelectList和通过return Acctlist.ToList<SelectListItem>();语句返回它,但不能因为错误的如何将类型'System.Collections.Generic.List <System.Web.Mvc.SelectListItem>'显式转换为'System.Web.Mvc.SelectList'?

无法隐式转换类型“System.Collections.Generic.List < System.Web.Mvc。 SelectListItem>”到 'System.Web.Mvc.SelectList'

 private SelectList RemoveCustomersWithoutSites(SelectList CustomerSelectList) 
    { 
     // Update the Account Number dropdown in the SafeContacts pages to only include accounts that have at least one monitored location in Stages. 
     SelectList CustList = null; 
     List<SelectListItem> Acctlist = new List<SelectListItem>(); 

     foreach (SelectListItem AcntNumber in CustomerSelectList.Items){ 
      IEnumerable<SelectListItem> siteList = null; 
      siteList = objAPICommon.GetSites(AcntNumber.ToString()); 

      // Add this Account if it has a site 
      if (siteList != null && siteList.Count() > 0) 
      { 
       SelectListItem item; 
       item = new SelectListItem { Text = AcntNumber.Text, Value = AcntNumber.Value }; 
       Acctlist.Add(item); 
      } 
     } 

     return ***Acctlist.ToList<SelectListItem>()***; 
    } 

我应该怎样投或转换AcctlistSelectList好吗?谢谢。

+0

'返回新的SelectList(AcctList);' – mxmissile

+0

会是什么呢? 'SelectList'是'IEnumerable ',但不是相反。而且'DropDownListFor()'方法需要的全部是'IEnumerable '。使用新的SelectList(...)'从第一个创建一个完全相同的'IEnumerable '是没有意义的额外开销。只是让你的方法'私人IEnumerable RemoveCustomersWithoutSites(....)' –

回答

0

创建一个新的SelectList与项目:

new SelectList(items) 
+0

谢谢。我将我的return语句更改为SelectList CustomerSelectList1 = new SelectList(Acctlist,“customer_number”,“cust_name”); –

相关问题