@helper和Url.Action

时间:2013-02-06 00:27:38

标签: asp.net-mvc

我试图将一些简单的代码提取到一个单独的帮助函数

    @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文件中正常工作,但当我将其解压缩到我放在App_Code文件夹中的单独文件时,@ Url.Action会导致编译错误。

我是否需要从调用页面传入HTMLHelper?如果是这样,任何想法如何?

2 个答案:

答案 0 :(得分:4)

您需要将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)

答案 1 :(得分: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>
}

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