Чому такий код не працює:
@Html.DisplayFor(modelItem => item.SupplierName.ToString().Replace(""", ""))
Я отримую наступну помилку:
System.InvalidOperationException was unhandled by user code
Внутрішній виняток:
Templates can be used only with field access, property access,
single-dimension array index, or single-parameter custom indexer expressions.
Працює з Templates
, як ось у наступному запитанні про SO: замінити символ у тексті, створеному html.displayfor, єдине рішення?
Мені здається дивним писати шаблони лише для форматування якогось тексту?
Відповіді:
1 для відповіді № 1Html.DisplayFor шукає DisplayTemplate для типу даних. Я надаю приблизний приклад використання DisplayFor у вашому сценарії, хоча, ймовірно, не потрібен.
Створіть папку DisplayTemplates під ViewsShared та додайте файл, який називається чимось посиланням RemoveSlashes.cshtml.
@model string
@Html.Raw(Model.Replace(""", ""))
Потім ви можете використовувати цей шаблон відображення у своїх полях.
@Html.DisplayFor(modelItem => item.SupplierName, "RemoveSlashes")
Після цього ваш елемент передасть на шаблон DisplayTemplate і виведе код у шаблоні відображення.