Выборочно связывающие модели на бритвенных страницах - PullRequest
0 голосов
/ 31 января 2020

Я использую 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...