Я использую Razor Pages и застреваю с привязкой модели. У меня есть страница Razor со стандартными действиями Get и Post, но она также имеет две функции-обработчики, которые получают доступ через jquery (отправка ajax запросов).
Проблема, с которой я сталкиваюсь, заключается в том, что у меня есть 3 модели, которые я связываю в классе PageModel, но я хочу проверять определенные модели только по определенным запросам.
См. Пример моей модели страницы ниже:
public class ExampleModel : PageModel
{
// Bind 3 models
[BindProperty]
public Models.Model1 Model1 { get; set; }
[BindProperty]
public Models.Model2 Model2 { get; set; }
[BindProperty]
public Models.Model3 Model3 { get; set; }
public IActionResult OnGet()
{
return Page();
}
public IActionResult OnPost()
{
// Check if Model1 is valid
if (!ModelState.IsValid)
{
//Do something here if Model1 is invalid
}
// Do something if Model1 is valid
}
public JsonResult OnPostHandler1()
{
// Check if Model2 is valid
if (!ModelState.IsValid)
{
//Do something here if Model2 is invalid
}
// Do something if Model2 is valid
}
public JsonResult OnPostHandler2()
{
// Check if Model3 is valid
if (!ModelState.IsValid)
{
//Do something here if Model3 is invalid
}
// Do something if Model3 is valid
}
}
В приведенном выше примере: если все три модели (модель1, модель2 и модель3) не пройдут проверочные проверки, ModelState.IsValid всегда возвращает false. Я хочу выбрать модель, которую я хочу, в зависимости от действия
В стандартном действии OnPost я хочу только проверить model1, в OnPostHandler1 я хочу только проверить model2, а в OnPostHandler3 я хочу только проверить model3.
Как связать модели на основе вызываемой функции? Или, если мне нужно связать их всех в классе (как указано выше), как проверить ModelState.IsValid только для одной или нескольких связанных моделей?
Заранее спасибо,
Matt