У меня есть эта модель:
public class FieldMapViewModel
{
public int Id { get; set; }
[Range(1, int.MaxValue, ErrorMessageResourceName = "RangeErrorMessage", ErrorMessageResourceType = typeof(Resources))] public int FeedId { get; set; }
[Range(1, int.MaxValue, ErrorMessageResourceName = "RangeErrorMessage", ErrorMessageResourceType = typeof(Resources))] public int FieldId { get; set; }
[Required(ErrorMessageResourceName = "RequiredErrorMessage", ErrorMessageResourceType = typeof(Resources)), StringLength(100, ErrorMessageResourceName = "StringLengthErrorMessage", ErrorMessageResourceType = typeof(Resources))] public string Path { get; set; }
}
Как видите, Path требуется, а FieldId и FeedId имеютдиапазон от 1 до int.MaxValue
. Итак, в моем контроллере эта строка должна возвращать BadRequest
if (!ModelState.IsValid) return BadRequest(ModelState);
Но это не так. Модель, которую я передал, выглядит следующим образом:
ModelState должен дать сбой как для FieldId , так и для Путь в этом случае. Вот полный код:
/// <summary>
/// Creates a new fieldMap
/// </summary>
/// <param name="fieldMap">The fieldMap</param>
/// <returns></returns>
[HttpPost]
[ProducesResponseType(typeof(FieldMap), StatusCodes.Status201Created)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<IActionResult> CreateAsync(FieldMapViewModel fieldMap)
{
if (fieldMap == null) return BadRequest();
if (!ModelState.IsValid) return BadRequest(ModelState);
var request = ModelFactory.Create(fieldMap);
_fieldMapService.Create(request);
await _fieldMapService.SaveChangesAsync();
return Created(nameof(Get), new Sxp.Web.ActionResult<FieldMap>(request, string.Format(Resources.EntityCreated, "fieldMap")));
}
Может кто-нибудь сказать мне, почему его не подобрали?