Ошибка публикации ASP.NET 5 Core DisplayFor()C#

Место общения программистов C#
Ответить
Anonymous
 Ошибка публикации ASP.NET 5 Core DisplayFor()

Сообщение Anonymous »

Я переношу некоторый код из ASP.NET Framework 4.7 в ASP.NET Core. В коде используется оператор foreach для перебора записей. Он использует устаревшую функциональность «DisplayTemplates», которая сопоставляет типы в папке DisplayTemplates, чтобы полиморфно отображать разные HTML-коды для каждого элемента в зависимости от модели. Все классы являются производными от одного и того же базового класса.
Чтобы обеспечить правильную работу в ASP.NET Core, мне пришлось изменить код:

Код: Выделить всё

 @foreach (var token in Model.TokenGraph)
{
@Html.DisplayFor(t => token)
}
кому:

Код: Выделить всё

 @foreach (var token in Model.TokenGraph)
{
@Html.DisplayFor(t => token, token.GetType().Name)
}
... передавая имя типа.
Нет проблем и работает правильно на моей локальной машине.
Проблема в том, что когда я публикую проект на удаленном сервере, используемый шаблон всегда по умолчанию соответствует шаблону базового класса.
Как ни странно, если я вывожу строку, возвращаемую token.GetType().Name на странице, оно соответствует имени производного типа, а не имени базового типа.
Это ошибка в ASP.NET Основной? Если обходного пути нет, есть ли лучший способ справиться с этой проблемой?

Подробнее здесь: https://stackoverflow.com/questions/670 ... ublish-bug
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»