5

我正在尝试将一些简单的代码提取到一个单独的辅助函数中

    @helper ShowPath()
    {
    <p class="migas">
    <a href="@Url.Action("Index", "Home")">Home</a>
   &gt; <a href="@Url.Action("Index", "AboutUs")">About Us</a>
   &gt; Directory</p>
}

在原始 cshtml 文件中工作正常,但是当我将 @Url.Action 提取到我放在 App_Code 文件夹中的单独文件中时,它会导致编译错误。

我需要从调用页面传入 HTMLHelper 吗?如果是这样,有什么想法吗?

4

2 回答 2

6

你需要传递UrlHelper给你的方法

@helper ShowPath(UrlHelper url)
{
    <p class="migas">
    <a href="@Url.Action("Index", "Home")">Home</a>
   &gt; <a href="@url.Action("Index", "AboutUs")">About Us</a>
   &gt; Directory</p>
}

然后从一个角度来看,

@YouAppCodeName.ShowPath(Url)
于 2013-02-06T00:36:40.490 回答
0

尝试这个

@using System.Web.Mvc
@using System.Web.Mvc.Html

@helper ShowPath(WebViewPage page)
{
  <p class="migas">
  <a href="@page.Url.Action("Index", "Home")">Home</a>
  &gt; <a href="@page.Url.Action("Index", "AboutUs")">About Us</a>
  &gt; Directory</p>
}

当您在页面上调用它时,将作为参数发送。如果您将来需要它们,它可以让您访问所有助手。

于 2013-02-06T01:13:44.243 回答