目前我在View中使用了一个名为ToFriendlyUrl
的函数,但希望通过将其移动到一个类来集中该代码,以便可以从其他视图中引用该函数。
@functions {
private object ToFriendlyUrl(string urlToEncode)
{
var 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') || (ch >= 'a' && ch <= 'z'))
{
url.Append(ch);
}
else
{
url.Append('-');
}
break;
}
}
return url.ToString();
}
}
该函数的调用方式与ToFriendlyUrl(content.Title)
类似。
请问一些正文如何构建新类,然后我将如何从View中引用该功能?
非常感谢任何帮助: - )
答案 0 :(得分:2)
您还可以创建HtmlHelper扩展名:
public static class HtmlHelperExtensions
{
public static IHtmlString ToFriendlyUrl(this HtmlHelper helper, string urlToEncode)
{
var 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') || (ch >= 'a' && ch <= 'z'))
{
url.Append(ch);
}
else
{
url.Append('-');
}
break;
}
}
return new MvcHtmlString(url.ToString());
}
}
并在您的观看中使用它:
@Html.ToFriendlyUrl(url)
答案 1 :(得分:0)
您不需要课程,您可以将该功能移至_Layout,将其添加到脚本块,所有视图都可以调用它。
您还可以将其移动到js文件并将其包含在需要功能的视图中,或者_Layout可以包含脚本。
答案 2 :(得分:0)
您可以将该功能添加到“部分”视图中。然后,您可以在任何地方渲染局部视图。
祝你好运