Как изменить значение в ModelState, чтобы оно было допустимым, используя ASP.NET MVC?
в настоящее время я разрешаю selectlist иметь начальное значение "". Пользователь может выбрать, следует ли заполнить эту опцию или оставить ее в значении по умолчанию.
этот список выбора работает с идентификатором, где идентификатор передается моему контроллеру. Однако, поскольку int не выбирается, ModelState приводит к False, поскольку вход был пустой строкой, а не int.
Я хочу изменить значение этой пустой строки на 0. Это приведет к ModelState будучи истинным. Я смотрел на класс словаря ModelState, чтобы я мог изменить пару ключ, значение перед проверкой ModelState. Однако я не смог использовать это successfully.
https://msdn.microsoft.com/en-us/library/system.web.mvc.modelstatedictionary(v=vs. 118).aspx
любая помощь была бы весьма признательна.
2 ответов
попробуйте использовать
ModelState.SetModelValue("PropertyID", new ValueProviderResult("New value", "", CultureInfo.InvariantCulture));
вот полезная статья.
вы можете просто удалить ошибку
if (ModelState.ContainsKey("{key}"))
ModelState["{key}"].Errors.Clear();
if (ModelState.IsValid)
{
}