Динамический (ExpandoObject) и статический тип (Модель) в asp.net mvc - PullRequest
1 голос
/ 11 июня 2011

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

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

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

В этом случае

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

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

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

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

1 Ответ

1 голос
/ 11 июня 2011

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

Конечно.

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

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

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

}

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

TempData["Errors"] = "";
...