Это расширение или вспомогательный метод в MVC3? - PullRequest
1 голос
/ 18 ноября 2011

Я не понимаю, что есть что. Может кто-нибудь объяснить разницу между ними.

Например, следующее возвращает 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;
    }

Ответы [ 2 ]

4 голосов
/ 18 ноября 2011

Они не являются вспомогательными методами, они называются HTML-помощниками. В C # нет реализации «вспомогательного метода».HTML-помощники реализованы как методы расширения.Вы можете видеть, что методы расширения являются статическими методами с предложением this перед первым параметром.HTML-помощники облегчают создание HTML-тегов.

0 голосов
/ 18 ноября 2011
public static MvcHtmlString HdrLinks(this HtmlHelper helper, string topLink)

является одновременно методом расширения C # и вспомогательным методом html для использования в ASP.NET MCV Views:

//Example of a call as an extension method:

var helper = new HtmlHelper(...);
var result = helper.HdrLinks(topLink);

//Example of a call as a helper method in an MVC razor view:
@Html.HdrLinks(topLink)

Ниже приведен "стандартный" статический метод C #:

public static class Slug {
  public static string Generate(string phrase, int maxLength = 50)
}

//Example of call:

var phrase = "Freech Alpes are the surfer's best spot"
var result = Slug.Generate(phrase);

Статические методы вызываются без экземпляра класса.Это специальная фиктивная конструкция для группирования функций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...