2009-10-19 21 views
7

Ok. To jest prawdopodobnie naprawdę głupie pytanie, ale ja i tak o to spytam ...Jak używać rozszerzeń i metod narzędziowych w znacznikach?

Jak mogę używać rozszerzeń i metod narzędziowych w moim znaczniku ASP.Net? Na przykład, (powiedzmy) Mam metodę rozszerzenia DateTime nazwie „ToExampleString()” (zawarte w klasie DateTimeExtensions w moim projekcie Common.Extensions) i chcę go używać w moim znaczników w ListView w ItemTemplate:

<ItemTemplate> 
    <span><%# ((DateTime)Eval("DateStarted")).ToExampleString() %></span> 
</ItemTemplate> 

dostaję następujący błąd:

„System.DateTime” nie zawierają definicji „ToExampleString” i żadna metoda rozszerzenie „ToExampleString” przyjęcie pierwszego argumentu typu „System.DateTime” można znaleźć (czy brakuje dyrektywy dotyczącej użycia lub odniesienia do zespołu?)

Strona po prostu nie widzi metody rozszerzenia.

Podobnie, jak mogę uczynić markup moja strona jest świadoma klasie użytkowej:

<span><%# ExampleUtility.ProcessDate(Eval("DateStarted") %></span> 

Jakie kroki muszę podjąć, aby tę pracę rzeczy? Zakładam, że przeoczyłem coś głupiego, oczywistego?

Dzięki

Odpowiedz

7
<%@ Import Namespace="Common.Extensions" %> 

Wierzę, że można to zrobić dla wszystkich znaczników w pliku web.config.

+0

Dzięki Yuriy. W moim kodzie mam wyrażenie "using Common.Extensions". Czy to powinno działać? –

+0

Nie, uważam, że należy również umieścić go w znacznikach. –

+0

Instrukcja using w kodzie za pozwala kodowi znajdującemu się za klasą, aby zobaczyć metody rozszerzenia, ale musisz zaimportować przestrzeń nazw również w pliku znaczników. –

0

Przestrzenie nazw?

Należy dodać za pomocą/dyrektywa import w aspx znaczników

2

Trzeba zaimportować przestrzeń nazw, w górnej części strony:

<%@ Import Namespace="Common.Extensions"%> 
9

należy zaimportować przestrzeń nazw albo na górze strona jak mówili inni

<%@ Import Namespace="Common.Extensions"%> 

lub globalnie w pliku web.config

<system.web> 
    <pages> 
    <namespaces> 
     <add namespace="Common.Extensions"/> 
    </namespaces> 
    </pages> 
</system.web> 

Jeśli po prostu potrzebujesz dostępu do metod modułu publicznego (lub klasy statycznej), po prostu zaimportuj główny obszar nazw aplikacji.

+0

Dzięki za dodatkowe informacje web.config! –

Powiązane problemy