2013-02-06 48 views
4

我想提取一些簡單的代碼到一個單獨的輔助函數的原CSHTML文件中@helper和Url.Action

@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> 
} 

工作正常,但在@ Url.Action導致當我提取編譯錯誤它到一個單獨的文件,我把它放在App_Code文件夾中。

我是否需要從調用頁面傳入HTMLHelper?如果是這樣,任何想法如何?

+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> 
} 

,然後從一個視圖,

​​
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> 
} 

當你調用它的頁面發送這個作爲參數。如果將來需要它,它可以讓你訪問所有的幫助者。