你是不是調用擴展方法正確。它應該是:
@Url.MRUrl()
請閱讀使用前的擴展方法在C#中是如何工作的:http://msdn.microsoft.com/en-us/library/bb383977.aspx
擴展方法(在你的情況UrlHelper
)延伸的給定類型和調用上實例這種類型。如此以來,你的觀點裏,你已經有了UrlHelper
實例(整個Url
屬性),所以你可以直接調用您的擴展方法就可以了。
能夠加入其中,它包含的類定義的命名空間來調用,你需要把它納入範圍的擴展方法之前:
@using MyNS.Helpers
@Url.MRUrl()
而且擴展方法必須在靜態類中聲明。你的C#代碼甚至不會編譯。因此,解決這個問題:
namespace MyNS.Helpers
{
public static class HtmlHelper // Bad name choice I know.
{
public static string MRUrl(this UrlHelper url)
{
return "blah";
}
}
}
所有這就是標準的C#,無關ASP.NET MVC或剃刀。
現在一些ASP.NET MVC特定的:如果你想避免帶來的命名空間到範圍爲每個視圖(@using MyNS.Helpers
),你可以把它添加到您的~/Views/web.config
文件的<namespaces>
標籤的需要(不要混淆與~/web.config
)。
出色答卷。像你這樣的人讓這個世界四處奔走:) – Doomsknight
@Darin,你是一位搖滾明星。感謝您的大力支持! –