我很困惑哪个是哪个。有人能解释两者之间的区别吗?这是MVC3中的扩展或帮助器方法吗?
例如下面是哪个返回MvcHtmlString的扩展或帮助器方法?
public static class LinkExtensions
{
public static MvcHtmlString HdrLinks(
this HtmlHelper helper,
string topLink,
string subLink,
System.Security.Principal.IPrincipal user)
{
etc ...
如何:
public static class Slug
{
public static string Generate(string phrase, int maxLength = 50)
{
string str = RemoveAccent(phrase).ToLower();
str = Regex.Replace(str, @"[^a-z0-9\s-]", " ");
str = Regex.Replace(str, @"[\s-]+", " ").Trim();
str = str.Substring(0, str.Length <= maxLength ? str.Length : maxLength).Trim();
str = Regex.Replace(str, @"\s", "-");
return str;
}
我不知道MVC的“助手”方法,但“助手”并不意味着任何从面向对象或架构的角度来看,并且是一个糟糕的命名约定。尽可能避免使用它,但可以随意使用现有库/使用该错误名称的代码。如果MVC正在生成称为“助手”的方法,不要试图纠正它 - 只是不要堆积在现有糟糕的命名之上。例如,MS添加到“IEnumerable”类型的扩展方法称为“Linq”,而不是“EnumerableHelper”。 –