Я нахожусь в процессе перехода от netframework к netcore. Теперь у меня есть веб-приложение asp. net mvc 5, которое ссылается на проект с моими моделями. Была использована проверка модели, и некоторые из этих моделей имеют атрибуты [ValidationAttribute] из System.ComponentModel.DataAnnotations сборка . Однако проверка перестала работать сразу после обновления проекта Models до netstandard и добавления System.ComponentModel.Annotations nuget package . Я думаю, что Проверка модели не работает с пакетом nuget, только со сборкой, у них также немного другое имя сборки, но одно и то же пространство имен.
Итак, вот мои вопросы:
- Можете ли вы подтвердить, что это не работает или я что-то упустил?
- Есть ли хороший подход, чтобы обойти это, или мне нужно использовать какую-то пользовательскую проверку до полного обновления до netcore?
Обновление
Как указано в комментариях, я решил добавить небольшой пример того, что раньше работало, но теперь это не так
Первый класс - это модель с атрибутом проверки
* 1024. *
Второй класс - ApiController
using System.Web.Http;
namespace WebAppSandBox
{
public class HomeController : ApiController
{
public IHttpActionResult Post(Student model)
{
if (ModelState.IsValid)
{
return Ok();
}
else
{
return BadRequest("The model is not valid");
}
}
}
}
Это очень простой пример, который корректно проверяет модель с помощью .NetFramework. Однако если вы поместите класс ученика в проект .netstandard, свойство ModelState.IsValid всегда будет иметь значение true.