タグクラウドに入るデータが式から来るタグクラウドを描画するために、式を使用してカスタムHTMLヘルパーを構築しています。ここでコードに話をさせます:
モデルを見る
public class ViewModel
{
public IList<MyType> MyTypes { get; set; }
public IList<MyOtherType> MyOtherTypes { get; set; }
}
意見
<div>
@Html.TagCloudFor(m => m.MyTypes)
</div>
<div>
@Html.TagCloudFor(m => m.MyOtherTypes)
</div>
ヘルパー
public static MvcHtmlString TagCloudFor<TModel, TProperty>(this HtmlHelper<TModel> helper, Expression<Func<TModel, TProperty>> expression) where TProperty : IList<MyType> where TProperty : IList<MyOtherType>
{
// So my actual question here is: how do I get my IList<TProperty> collection
// so I can iterate through and build my HTML control
}
私はざっと見て回って、通常のグーグル検索をしました、しかし、私はその特定の答えを完全に見つけることができないようです。の領域のどこかにあるとexpression.Compile().Invoke()
思いますが、渡す正しいパラメータが何であるかわかりません。
また、と同様のプロパティを持っているMyType
ことにも言及する必要がありますが、ここには継承はありません。これらは完全に別個のオブジェクトであるため、asとを制約しています。私はここで間違った道を進んでいますか、これは明白なはずだと思いますが、私の脳は遊んでいません。MyOtherType
Id
TProperty
IList<MyType>
IList<MyOtherType>