我使用扩展方法来扩展HTML助手,以创建一个RSS重复器:
public static string RSSRepeater(this HtmlHelper html, IEnumerable<IRSSable> rss)
{
string result="";
foreach (IRSSable item in rss)
{
result += "<item>" + item.GetRSSItem().InnerXml + "</item>";
}
return result;
}
所以我让我的一个业务对象实现IRSSable接口,并尝试将其传递给HTML助手。但是似乎无法使其正常工作,我已经尝试过:
<%=Html.RSSRepeater(ViewData.Model.GetIssues(null, null, "") as IEnumerable<IRSSable>) %>
编译正常,但传递了null
<%=Html.RSSRepeater(ViewData.Model.GetIssues(null, null, "")) %>
Intellisense 抱怨无法将 IEnumerable 问题传递给 IEnumberable IRSSable。
- 那么你该怎么做呢?我调用的方法肯定返回
IEnumberable<Issue>
,而 Issue 肯定实现了 IRSSAble。