私は新しい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>()***;
}
どのようにしてくださいキャストまたはSelectList
へAcctlist
を変換する必要がありますか?ありがとうございました。
'新しいSelectListの(AcctList)を返す;' – mxmissile
ポイントでしょうか? 'SelectList'は' IEnumerable 'ですが、それ以外の方法はありません。そして 'DropDownListFor()'メソッドに必要なのは 'IEnumerable 'です。新しいSelectList(...)を使用して最初のものから同じIEnumerable を作成するのは、無意味な余分なオーバーヘッドです。ちょうどメソッド 'private IEnumerable RemoveCustomersWithoutSites(....)' –