asp.net-mvc – 如何在Razor帮助器中使用UrlHelper?

我正在尝试创建一个这样的剃刀助手:
@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 helpers的基类)没有Url属性(类型为UrlHelper)。它有Html(类型为HtmlHelper)但没有Url。

在帮助者中找到UrlHelper最简单的方法是什么?我应该是新的一个在线吗?

解决方法

Syntax for ASP.Net MVC Phil Haack’s Repeater syntax using Razor (MVC 3)? – Stack Overflow
@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>
}

或者,如果使用MVC3 RC2

@helper Render(IEnumerable<MyItem> items) {
  <ul>
    @foreach (var item in items) {
      <li><a href="@Href(item.Url)">Click</a></li>
    }
  </ul>
}

希望这个帮助。

相关文章

引言 本文从Linux小白的视角, 在CentOS 7.x服务器上搭建一个...
引言: 多线程编程/异步编程非常复杂,有很多概念和工具需要...
一. 宏观概念 ASP.NET Core Middleware是在应用程序处理管道...
背景 在.Net和C#中运行异步代码相当简单,因为我们有时候需要...
HTTP基本认证 在HTTP中,HTTP基本认证(Basic Authenticatio...
1.Linq 执行多列排序 OrderBy的意义是按照指定顺序排序,连续...