Строковое поле является обязательным. даже у тебя нет обязательного атрибута в Asp.Net Core?C#

Место общения программистов C#
Anonymous
Строковое поле является обязательным. даже у тебя нет обязательного атрибута в Asp.Net Core?

Сообщение Anonymous »

Я создаю простое приложение 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

Вернуться в «C#»