Asp.net mvc 4 为UrlHelper创建扩展方法时出错

Asp.net mvc 4 为UrlHelper创建扩展方法时出错,asp.net-mvc-4,url-rewriting,Asp.net Mvc 4,Url Rewriting,我使用它在我的应用程序中创建干净的URL: public static class UrlEncoder { public static string ToFriendlyUrl(this UrlHelper helper, string urlToEncode) { urlToEncode = (urlToEncode ?? "").Trim().ToLower(); String

我使用它在我的应用程序中创建干净的URL:

public static class UrlEncoder
    {
        public static string ToFriendlyUrl(this UrlHelper helper,
            string urlToEncode)
        {
            urlToEncode = (urlToEncode ?? "").Trim().ToLower();

            StringBuilder url = new StringBuilder();

            foreach (char ch in urlToEncode)
            {
                switch (ch)
                {
                    case ' ':
                        url.Append('-');
                        break;
                    case '&':
                        url.Append("and");
                        break;
                    case '\'':
                        break;
                    default:
                        if ((ch >= '0' && ch <= '9') ||
                            (ch >= 'a' && ch <= 'z'))
                        {
                            url.Append(ch);
                        }
                        else
                        {
                            url.Append('-');
                        }
                        break;
                }
            }

            return url.ToString();
        }
    }
我使用指令添加了以下内容:

using System;
using System.Text;
using System.Web.Mvc;
我试过了,但还是有同样的错误:

@UrlHelper.ToFriendlyUrl(item.Name)
并使用System.Web.Http.Routing使用该指令
改为
使用System.Web.Mvc但我仍然有相同的错误。
似乎
UrlHelper
属于另一个程序集,我不知道

有什么想法吗?

感谢您的建议

您还需要在视图中包含
urlcoder
类的名称空间:

@using Mynamespace

从我的视图调用UrlHelper扩展方法时,我遇到了类似的错误,但解决方案略有不同,因此我将分享它,以防它帮助其他人:

在我的扩展类中,我需要使用System.Web.Http.Routing替换
编码

两者都解析
UrlHelper
,但MVC引用是您在视图中使用它所需要的。

将接口(IUrlHelper)而不是类名(UrlHelper)作为第一个参数传递

public static class UrlEncoder  
    {  
        public static string ToFriendlyUrl(this **IUrlHelper** helper,
            string urlToEncode)  
         {  
         //your code  
        }  
}
请阅读-为了将代码格式化为代码,您只需要用3个反勾标记或缩进即可。请你把你的答案和格式写正确好吗。
@using Mynamespace
public static class UrlEncoder  
    {  
        public static string ToFriendlyUrl(this **IUrlHelper** helper,
            string urlToEncode)  
         {  
         //your code  
        }  
}