ASP.NET MVC - привязать пустую коллекцию, когда параметр имеет значение null - PullRequest
5 голосов
/ 03 января 2012

У меня есть пара методов действия с параметрами типа IList.

public ActionResult GetGridData(IList<string> coll)
{
}

Поведение по умолчанию - когда данные метода не передаются, параметр имеет значение null.

Есть лиМожно ли получить пустую коллекцию, а не пустое приложение?

Ответы [ 2 ]

5 голосов
/ 03 января 2012

Ну, вы можете сделать это:

coll = coll ?? new List<string>();

Или вам нужно будет реализовать ModelBinder, который будет создавать пустой список вместо возврата null.Например:

public EmptyListModelBinder<T> : DefaultModelBinder
{
  public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) 
  {
    var model = base.BindModel(controllerContext, bindingContext) ?? new List<T>();
  }
}

И обозначенный как:

ModelBinders.Binders.Add(typeof(IList<string>), new EmptyListModelBinder<string>());

Я, вероятно, придерживаюсь проверки аргументов, хотя ...

1 голос
/ 03 января 2012

просто сделай сам

public ActionResult GetGridData(IList<string> coll)
{
    if(coll == null)
        coll = new List<String>();
    //Do other stuff
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...