2011-02-14 19 views
8

Zobaczyłem post Scotta Guthriego na temat metod pomocniczych za pośrednictwem his blog.Declarative Helper Methods in Razor RTM

Konkretnie to:

widzę kilka wersji RC MVC 3 posty o braku metod pomocniczych ... Widzę syntaktyczną poparcie dla niego (@helper) zostanie podświetlony, ale I mają tę /Views/Helpers/SomeHelper.cshtml (zdefiniowany jako częściowym widokiem)

@helper SomeHelper(string text) 
{ 
    if (text != null) 
    { 
     <text> 
      @text 
     </text> 
    } 
    else 
    { 
     <text> 
      Unknown 
     </text> 
    } 
} 

użyć go w następujący sposób:

<div> 
Helper with Text: 
@SomeHelper("This is not null text.") 
</div> 

Ale mam SomeHelper nie jest zdefiniowany ... więc gdzie to zepsułem? Czy jest coś, co muszę zrobić, aby zarejestrować te wyświetlenia jako pomocników?

Dzięki.

Odpowiedz

12

Zrobiłem to, tworząc folder App_Code w moim projekcie, a następnie tworząc w tym folderze plik Helpers.cshtml.

Następnie w .cshtml widok, użyj:

@Helpers.SomeHelper("This is not null text.") 

Jest to jedyny sposób znalazłem do tworzenia wspólnych deklaratywnych metody pomocnika w całej projektu internetowego. Jeśli są inni, chciałbym o nich usłyszeć.

+0

Prawidłowo, jest to jedyny sposób, w jaki może to teraz działać w MVC. W przyszłości będzie miała lepszą historię dla globalnych pomocników. Po prostu nie mieliśmy czasu, aby to zadziałało. – marcind

+0

Nawet z szablonem aplikacji internetowej? –

+0

@marcind A co z ASP.NET MVC 4? Czy będą inne sposoby na stworzenie globalnych pomocników? – Syska

Powiązane problemy