Я создаю простое приложение Asp.Net Core в Linux (pop os). Я использую VueJs + Aps.Net Core 3.1.101
Я пытаюсь выполнить POST-вызов своего приложения, и моя модель выглядит следующим образом:
public class AddConfigurationContextValueApiRequest
{
public int ContextId { get; set; }
[Required(ErrorMessage = "Value is required to continue")]
[StringLength(500, ErrorMessage = "Value can not be longer than 500 characters")]
public string Value { get; set; }
[StringLength(500, ErrorMessage = "Display name can not be longer than 500 characters")]
public string DisplayName { get; set; }
}
Как вы можете видеть, для поля DisplayName нет обязательного атрибута, но всякий раз, когда я передаю нулевое значение из VueJS app для этого поля я получаю Поле DisplayName является обязательным..
Я пытаюсь выяснить, почему AspNet Core будет жаловаться на это, поскольку нет Обязательный атрибут для такого поля!
Кто-нибудь знает, намеренно ли это? Я попытался удалить атрибут StringLength, но он все равно активирует обязательный атрибут.
Мое действие довольно простое:
[HttpPost(UrlPath + "addConfigurationContextValue")]
public async Task AddConfigurationContextValue([FromBody]AddConfigurationContextValueApiRequest request)
{
using var unitOfWork = _unitOfWorkProvider.GetOrCreate();
if (!ModelState.IsValid)
{
//Here it throws because ModelState is invalid
throw new BadRequestException(ModelState.GetErrors());
}
//do stuff
await unitOfWork.CommitAndCheckAsync();
}
Подробнее здесь: https://stackoverflow.com/questions/601 ... -in-asp-ne