Html.ValidationMessage не покажет ошибку в представлении

#c# #asp.net #model-view-controller #error-handling

#c# #asp.net #модель-представление-контроллер #обработка ошибок

Вопрос:

Я пытаюсь добавить ошибку самостоятельно, используя ModelState.AddModelError , и когда я пытаюсь отобразить ее в представлении, диапазон проверки указан в html, но сообщения нет.

Контроллер

 if (!paymentTypeId.HasValue || !shipmentTypeId.HasValue)
{
 var model = new CheckoutViewModel()
 {
     ShipmentTypes = m_ShipmentTypeService.GetAllShipmentTypes(true),
     PaymentTypes = m_PaymentTypeService.GetAllPaymentTypes(true),
  };
  SetBaseProperties(model, null);
  ModelState.AddModelError("ErrorCheckout", "L_CHOOSE_TYPE_ERROR");
  return View(model);
}
  

Вид

@Html.ValidationMessage("ErrorCheckout", new { @class = "text-danger" })

На других страницах я сделал то же самое, и это сработало, я не знаю, в чем здесь проблема

Комментарии:

1. Перед тем, как вы вернетесь, model установлена ли проверка? Я не знаю этого наверняка, но я ожидал бы, AddModelError что буду работать с моделью, полученной в качестве аргумента, а не с той, которую вы обновили вручную.

2. добавлена ошибка @Crowcoder, я попытаюсь отправить запрос с помощью submit, сейчас я делаю с помощью ajax, у меня нет других предложений

Ответ №1:

Проблема заключалась в отправке запроса к действию через ajax. Когда я перешел на Html.Сформируйте и разместите отправку, она начала работать, странное поведение, но вот и все.