Próbuję obcinać długi ciąg, aby wyświetlić go tylko na stronie indeksu. Jest on wyświetlany w następujący sposób:Jak można obciąć ciąg za pomocą pomocników HTML MVC?
Opis może składać się z 500 znaków, ale nie mogę pokazać tak dużo na tym układzie siatki. Chciałbym pokazać tylko pierwszych 25, ponieważ widzą to wszystko na stronie Szczegóły, ale nie mogę sprawić, żeby działał bez obcinania go na poziomie modelu.
Coś takiego byłoby miło:
@Html.DisplayFor(modelItem => item.Description.Take(25))
@Html.DisplayFor(modelItem => item.Description.Substring(0,25)
EDIT
Dostaję następujący wyjątek w czasie wykonywania, gdy próbuję albo metodę.
Templates can be used only with field access, property access, single-dimension array index, or single-parameter custom indexer expressions.
Czy rozważałeś stworzenie dodatkowej właściwości modelu, która wykonuje podłańcuch i używa tego? –
Tak, właśnie tak miałem zamiar to zrobić, jeśli nie było sposobu, aby pracować z szablonami i jedną własnością. –
Twoim konkretnym problemem jest to, że wyrażenie przekazane do 'Html.DisplayFor' musi odwoływać się do rzeczywistej właściwości, a nie określonej wartości. Innymi słowy, możesz zrobić tylko '@ Html.DisplayFor (m => item.Description)', a nie '@ Html.DisplayFor (m => item.Description.Substring (0, 25))'. Nie musisz jednak używać 'Html.DisplayFor', więc możesz po prostu napisać' @ item.Description.Substring (0, 25) '. Należy jednak pamiętać o komentarzu @ 48klocs do odpowiedzi Nathana A. –