Я думаю, что удаленная проверка может помочь вам с этой проблемой. Вы можете использовать его, чтобы проверить, существует ли номер каталога в базе данных:
public class Line
{
[Remote("QueryCatalogNumberExists", "Home")]
public int CatalogNumber { get; set; }
public int TeamCode { get; set; }
}
Затем в вашем контроллере (я не проверял этот код, но он должен быть похож на):
public JsonResult QueryCatalogNumberExists(int catalogNumber)
{
if (_repository.QueryCatalogNumberExists(catalogNumber))
{
return Json(true, JsonRequestBehavior.AllowGet);
}
return Json(false, JsonRequestBehavior.AllowGet);
}
Я полагаю, что у вас также могут быть дополнительные поля, чтобы вы могли проверить, является ли номер каталога действительным для данного TeamCode (я думаю, что TeamCode должен быть обнуляемым, так как пользователь может не ввести его до ввода номера в своем каталоге текущая модель в качестве командного кода не требуется). Итак, ваша модель будет:
public class Line
{
[Remote("QueryCatalogNumberExistsForTeamCode", "Home", AdditionalFields = "TeamCode")]
public int CatalogNumber { get; set; }
public int TeamCode { get; set; }
}
и код контроллера:
public JsonResult QueryCatalogNumberExistsForTeamCode(int catalogNumber, int? teamCode)
{
if (_repository.QueryCatalogNumberExistsForTeamCode(catalogNumber, teamCode))
{
return Json(true, JsonRequestBehavior.AllowGet);
}
return Json(false, JsonRequestBehavior.AllowGet);
}
Надеюсь, это направит вас в правильном направлении к решению.