私は次のようなRazorヘルパーを作成しようとしています:
@helper Render(IEnumerable<MyItem> items) {
<ul>
@foreach (var item in items) {
<li><a href="@Url.Content(item.Url)">Click</a></li>
}
</ul>
}
ここでの唯一の問題は、System.Web.WebPages.HelperPage(Razorヘルパーの基本クラス)に(タイプUrlHelperの)Urlプロパティがないことです。 Html(タイプHtmlHelper)はありますが、URLはありません。
ヘルパー内のUrlHelperに到達するための最もクリーンな方法は何ですか?インラインで新しいものを更新する必要がありますか?
ASP.Net MVC Phil HaackのRazor(MVC 3)を使用したリピーター構文の構文?-スタックオーバーフロー
@helper Render(IEnumerable<MyItem> items) {
var url = new System.Web.Mvc.UrlHelper(Context.Request.RequestContext);
<ul>
@foreach (var item in items) {
<li><a href="@url.Content(item.Url)">Click</a></li>
}
</ul>
}
または、MVC3RC2を使用している場合
@helper Render(IEnumerable<MyItem> items) {
<ul>
@foreach (var item in items) {
<li><a href="@Href(item.Url)">Click</a></li>
}
</ul>
}
この助けを願っています。
@helper Render(IEnumerable<MyItem> items,UrlHelper url) {
<ul>
@foreach (var item in items) {
<li><a href="@url.Content(item.Url)">Click</a></li>
}
</ul>
}