Как привязать MVC Core 2 ModelState - PullRequest
1 голос
/ 19 марта 2019

Есть ли способ переустановить проверку состояния модели в контроллере?

У меня есть следующее:

        if (!model.DifferentShippingAddress)
        {
            model.ShippingAddress = model.BillingAddress.ToShipping();
            // Rebind modelstate
        }

        if (!ModelState.IsValid)
        {
            return View(model);
        }

Я хочу пропустить записи ShippingAddress, если установлен флажок «SameAsBilling».

1 Ответ

1 голос
/ 19 марта 2019

Официальная документация для проверки модели гласит:

Проверка модели происходит перед выполнением действия контроллера.

Поэтому вам необходимо очистить ModelState и вручную запустить проверку, используя код, приведенный ниже.

if (!model.DifferentShippingAddress)
{
    model.ShippingAddress = model.BillingAddress.ToShipping();
    ModelState.Clear();
    TryValidateModel(model);
}
...