C# Asp. Net проверка модели атрибутов с использованием пакета nuts .netstandard system.componentmodel.dataannotations не работает - PullRequest
0 голосов
/ 30 марта 2020

Я нахожусь в процессе перехода от netframework к netcore. Теперь у меня есть веб-приложение asp. net mvc 5, которое ссылается на проект с моими моделями. Была использована проверка модели, и некоторые из этих моделей имеют атрибуты [ValidationAttribute] из System.ComponentModel.DataAnnotations сборка . Однако проверка перестала работать сразу после обновления проекта Models до netstandard и добавления System.ComponentModel.Annotations nuget package . Я думаю, что Проверка модели не работает с пакетом nuget, только со сборкой, у них также немного другое имя сборки, но одно и то же пространство имен.

Итак, вот мои вопросы:

  1. Можете ли вы подтвердить, что это не работает или я что-то упустил?
  2. Есть ли хороший подход, чтобы обойти это, или мне нужно использовать какую-то пользовательскую проверку до полного обновления до 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...