Używam wprowadzonego przez MVC 3 WebGrid, ale nie mogę nie zastosować własnych metod rozszerzenia podczas przekazywania delegata dla parametru format
.Dlaczego nie mogę używać mojej metody rozszerzenia w delegate w Razor WebGrid
Zastosowanie:
Grid.Column("MyProperty", "MyProperty",
format: @<span class="something">@item.MyProperty.MyExtensionMethodForString()</span>)
mam
ERROR: 'string' does not contain a definition for 'MyExtensionMethodForString'
Próbowałem odlewania, że nie będą korzystać
Grid.Column("MyProperty", "MyProperty",
format: @<span class="something">@((string)(item.MyProperty).MyExtensionMethodForString())</span>)
Gdybym użyć standardowej metody, to działa:
Grid.Column("MyProperty", "MyProperty",
format: @<span class="something">@(Utils.MyExtensionMethodForString(item.MyProperty))</span>)
Próbowałem również umieścić rozszerzenie w tej samej przestrzeni nazw, bez wyników.
Jak mogę użyć moich ukochanych rozszerzeń?
Edit: Przestrzeń nazw per se nie jest to problem, przestrzeń nazw, gdzie rozszerzenie jest dostępne dla wszystkich poglądów i klas, i można go używać w tym samym widoku bez problemu. Problem polega na tym, że używasz go w delegacie.
Znacznie prostszy przykład. Domyślam się, że będę żyć z obejściem :). Dzięki za pomoc. –