Ответ 1
Массивы всегда являются ссылочными типами, как и string
- поэтому они уже обнуляются. Вам нужно использовать (и только использовать) Nullable<T>
, где T - тип значения, не допускающего значения NULL.
Итак, вы, вероятно, захотите:
public ActionResult Search(string searchString, int[] locationIds,
DateTime? startDate, DateTime? endDate)
Обратите внимание, что я изменил имена параметров, чтобы следовать соглашениям об именах .NET и изменил LocationId
на locationIds
, чтобы указать, что это для нескольких местоположений.
Вы также можете рассмотреть возможность изменения типа параметра на IList<int>
или даже IEnumerable<int>
более общим, например.
public ActionResult Search(string searchString, IList<int> locationIds,
DateTime? startDate, DateTime? endDate)
Таким образом, вызывающий может передать, например, List<int>
.