Динамический (ExpandoObject) и статический тип (Модель) в asp.net mvc

Динамический и статический тип в asp.net mvc

Автомобиль лучше мотоцикла? Все зависит от сценария, который вы используете. Не зная сценария, это невозможно сделать!

Динамическая типизация лучше, чем статическая, для определенных проблем / ситуаций.

В этом случае

Мне нужно показать представление, когда вызывается метод OnException() BaseController. Это один раз, и я показываю страницу с ошибкой один раз вместо желтого экрана смерти.

Предположим, мне нужно показать ErrorMessage и Stacktrace в представлении. Поскольку это единовременно, лучше использовать динамический метод, чем создавать для этого модель ошибок.

       dynamic obj = new ExpandoObject();
       obj.ErrorMessage = "message";
       obj.StackTrace = "bla bla bal";
       return to view.

Какова лучшая практика. Спасибо за ответ.

1 ответ

Решение

"Является ли динамическая типизация лучше, чем статическая, для определенных проблем / ситуаций".

Конечно.

"Предположим, мне нужно показать ErrorMessage и Stacktrace в представлении. Поскольку это единовременно, лучше использовать динамический режим, чем создавать для этого модель ошибок".

В этом случае у вас обычно есть модель представления, которая может содержать ошибки. Иногда я использую класс модели базового вида с:

public class ViewModelBase
{
      public string ErrorMessage { get; set; }

}

Чаще всего я помещаю ошибки в TempData:

TempData["Errors"] = "";
Другие вопросы по тегам