#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.Сформируйте и разместите отправку, она начала работать, странное поведение, но вот и все.