2009-03-09 2 views
1

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

ответ

3

Обычный способ заключается в письменной форме методы расширения для 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

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

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(); 
     } 
    } 
+0

Как я интерпретировал его, он хотел с точки зрения, а не контроллер ... не большие изменения, хотя. –