アプリケーションでクリーンな 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();
}
}
そして、私はこの方法で上記のクラスを使用しています:
<a href="/Products/@item.Id/@Url.ToFriendlyUrl(item.Name)">@item.Name</a>
しかし、このエラーが発生し、拡張機能が機能しません:
Compiler Error Message: CS1061: 'System.Web.Mvc.UrlHelper' does not contain a definition for 'ToFriendlyUrl' and no extension method 'ToFriendlyUrl' accepting a first argument of type 'System.Web.Mvc.UrlHelper' could be found (are you missing a using directive or an assembly reference?)
私はディレクティブを使用してこれらを追加しました:
using System;
using System.Text;
using System.Web.Mvc;
私はこの方法を試しましたが、それでも同じエラーがあります:
@UrlHelper.ToFriendlyUrl(item.Name)
using System.Web.Http.Routing;
代わりにこのディレクティブを使用しましusing System.Web.Mvc;
たが、それでも同じエラーが発生します。別のアセンブリに属しているようですがUrlHelper
、わかりません。
何か案は?
あなたのアドバイスに感謝します