Обязательная переменная Rest - PullRequest
0 голосов
/ 22 октября 2018

Я хочу сделать запрос с [POST], и если какое-то поле пустое, я не следую в Сервис.Я хочу остановить поток в контроллере.проблема с ModelState.IsValid возвращает true, когда оно должно быть false, и возвращает BadRequest

Это код:

Модель:

public class IdentityBrokerSettingsDetails
    {
        [Required(AllowEmptyStrings = false)]
        public string Tenant { get; set; }

        // With interrogation mark you make it nullable
        [Required]
        public bool? Account { get; set; }

        [Required]
        public bool? StatusUserLogin { get; set; }

        public IdentityBrokerSettingsDetails(string tenant, bool? account, bool? statusUserLogin)
        {
            Tenant = tenant;
            Account = account;
            StatusUserLogin = statusUserLogin;
        }
    }

Контроллер:

[HttpPost]
        public IActionResult PostIdentitySettingsDetails([FromBody] IdentityBrokerSettingsDetails identityBrokerSettingsDetails)
        {
            if (!ModelState.IsValid) //doesn't work
                return BadRequest();

        }

Изображение происходящего:

enter image description here

1 Ответ

0 голосов
/ 22 октября 2018

Для строки Tenant вы можете использовать следующее: [DisplayFormat(ConvertEmptyStringToNull=false)]

https://docs.microsoft.com/en-us/dotnet/api/system.web.ui.webcontrols.parameter.convertemptystringtonull?redirectedfrom=MSDN&view=netframework-4.7.2

Также вы можете проверить

if (identityBrokerSettingsDetails == null || !Model.IsValid)
{ // Bad request code here
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...