У меня есть приложение ASP.NET с помощью Web API 2.запрос POST без проверки модели передача содержимого
Чтобы заставить проверки модели на все действия, я использую фильтр, например, так:
public class ValidateModelAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(HttpActionContext actionContext)
{
if (!actionContext.ModelState.IsValid)
{
actionContext.Response = actionContext.Request.CreateErrorResponse(
HttpStatusCode.BadRequest, actionContext.ModelState);
}
}
}
Этот хорошо работает в большинстве случаев, но когда я выполняю запрос POST против конечной точки API без какого-либо контента в теле запроса, это похоже на то, что проверка модели не влезает.
Контроллер-действие принимает модель с модой три свойства - все необходимые строки.
public class AddEntityViewModel
{
[Required]
public string Property1 { get; set; }
[Required]
public string Property2 { get; set; }
[Required]
public string Property3 { get; set; }
}
Если я просто добавить некоторые случайные данные в теле запроса, проверки модели пинок и отклонить запрос, как и ожидалось, но если тело запроса полностью разряжен, проходит проверку модель и модель я получаю в моем действии нулевой.
Есть ли хороший способ принудительного подтверждения модели, даже если тело запроса пуст, чтобы такие запросы были лишены? Или есть какой-то другой способ приблизиться к этому?
Показать код вашей модели –
@SergeyLitvinov Done! –
Только что нашел [этот вопрос SO] (http://stackoverflow.com/questions/19851352/mvc5-webapi2-modelstate-is-valid-with-null-model), который касается одной и той же проблемы, поэтому я голосую чтобы закрыть этот вопрос. –