Я пытаюсь выполнить удаленную проверку на свойство элемента внутри коллекции. Валидация работает нормально в первом элементе коллекции. HTTP-запрос к методу проверки выглядит следующим образом:
/Validation/IsImeiAvailable?ImeiGadgets[0].ImeiNumber=123456789012345
Однако во втором пункте, где URL-адрес выглядит ниже, проверка не работает.
/Validation/IsImeiAvailable?ImeiGadgets[1].ImeiNumber=123456789012345
Теперь я уверен, что причиной этого является то, что привязка не работает в коллекции, которая не начинается с нулевого индекса.
Мой метод проверки имеет подпись, как показано ниже:
public JsonResult IsImeiAvailable([Bind(Prefix = "ImeiGadgets")] Models.ViewModels.ImeiGadget[] imeiGadget)
Поскольку я передаю элемент внутри коллекции, я должен так привязываться, но то, что я действительно передаю, - это всего лишь одно значение.
В любом случае я могу справиться с этим иначе, чем просто привязать его как обычную старую строку запроса.
Спасибо
Изменить: это быстрое исправление для получения переменной Imei, но я бы предпочел использовать привязку модели:
string imeiNumber = Request.Url.AbsoluteUri.Substring(Request.Url.AbsoluteUri.IndexOf("=")+1);
Изменить: Вот мой класс ImeiGadget:
public class ImeiGadget
{
public int Id { get; set; }
[Remote("IsImeiAvailable", "Validation")]
[Required(ErrorMessage = "Please provide the IMEI Number for your Phone")]
[RegularExpression(@"(\D*\d){15,17}", ErrorMessage = "An IMEI number must contain between 15 & 17 digits")]
public string ImeiNumber { get; set; }
public string Make { get; set; }
public string Model { get; set; }
}