私は自分のWeb APIのために多くのモデルをセットアップしていますが、どれもそれらに対する属性はありません。ここでは、簡単なコントローラの例は、すべてのコントローラのnullモデルを処理する方法aspnet core c#
public async Task<IActionResult> PutAsync([FromBody] ChartModel model)
{
....
}
ある今、ユーザは、例えば、モデル内の無効なデータ・タイプをアップロードしようとすると、数プロパティに種類の手紙は、その後、私のコントローラはヌルrecieves。
これを処理する最も簡単で簡単な方法は何ですか?これらの特定のメソッドでモデルがnullの場合は、BadRequestを返します。
それぞれの方法に以下のようなものを追加できます。
if (model == null)
return new BadRequestObject("Invalid model");
しかし、私は私がやるとクリーンで整然とであることができる何かがなければならないと確信して、私はちょうどあなたがこの
public class ValidateModelAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(HttpActionContext actionContext)
{
var modelState = actionContext.ModelState;
if (!modelState.IsValid)
{
actionContext.Response = actionContext.Request.CreateErrorResponse(
HttpStatusCode.NotAcceptable, modelState);
}
}
}
してから使用してのようなものを何ができるか
任意のモデル誤差がModelState'が[にModelState](https://www.exceptionnotfound.net/asp-net-mvc-demystified-modelstateについての詳細を読んで、 'に追加されている場合は、' ModelState.IsValid'がわかります/) – Curiousdev
あなたのモデルに何らかの属性が設定されていない場合でも、 – Gillardo
他に何もない場合は、グローバルアクションフィルターでそれを行うことができます:) – juunas