Помощник приложения в ASP.NET MVC - PullRequest
1 голос
/ 09 марта 2009

Я ищу способ сделать помощник приложения, который позволяет вам определять методы, которые вы можете вызывать во всех представлениях контроллеров. В Rails вы получаете это бесплатно, но как я могу сделать это в ASP.NET MVC с помощью c #?

Ответы [ 2 ]

3 голосов
/ 09 марта 2009

Обычным способом является запись методов расширения в HtmlHelper - например:

public static string Script(this HtmlHelper html, string path)
{
    var filePath = VirtualPathUtility.ToAbsolute(path);
    return "<script type=\"text/javascript\" src=\"" + filePath
        + "\"></script>";
}

Теперь в представлении вы можете использовать Html.Script("foo"); и т. Д. (Поскольку в стандартном представлении есть член HtmlHelper с именем Html). Вы также можете написать методы в базовом представлении, но подход с использованием метода расширения является наиболее распространенным.

0 голосов
/ 09 марта 2009

Я бы предложил добавить метод расширения к базовому классу контроллера.

public static class ControllerExtensions
{
    public static string Summin(this Controller c)
    {
        return string.Empty;
    }
}

Вы можете получить доступ к вспомогательной функции в вашем контроллере:

  public class MyController : Controller
    {
        public ActionResult Index()
        {
            this.Summin();
            return View();
        }
    }
...