2017-06-22 8 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>()***; 
    } 

どのようにしてくださいキャストまたはSelectListAcctlistを変換する必要がありますか?ありがとうございました。

+0

'新しいSelectListの(AcctList)を返す;' – mxmissile

+0

ポイントでしょうか? 'SelectList'は' IEnumerable 'ですが、それ以外の方法はありません。そして 'DropDownListFor()'メソッドに必要なのは 'IEnumerable 'です。新しいSelectList(...)を使用して最初のものから同じIEnumerable を作成するのは、無意味な余分なオーバーヘッドです。ちょうどメソッド 'private IEnumerable RemoveCustomersWithoutSites(....)' –

答えて

0

アイテムで新しいSelectListを作成します。

new SelectList(items) 
+0

ありがとう。私は返信文をSelectList CustomerSelectList1 = new SelectList(Acctlist、 "customer_number"、 "cust_name")に変更しました。 –

関連する問題