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ファイル内では正常に機能しますが、App_Codeフォルダー内に配置した別のファイルにファイルを抽出すると、@Url.Actionによってコンパイルエラーが発生します。

呼び出しページから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 に答える