1

カスタムモデルバインダを配置したいという動作があります。私は、グローバルバインダーバインダーが欲しいわけではありません。私は[ModelBinder(...)]を使用して指定したアクションにバインダーを付けるだけです。コントローラにカスタムモデルバインダを配置する方法

以下のコードを使用すると、バインダーは呼び出されず、自分のアクションも実行されません。

public IActionResult MyContactInfo([ModelBinder(BinderType = typeof(Binders.TrimModelBinder), Name = "TrimModelBinder")] MyAccountModel mam) 
{ 
    //... 
} 

スタックトレース:Microsoft.Extensions..Internal.ActivatorUtilities.GetServiceで

(IServiceProvider属、タイプタイプ、タイプrequiredBy、ブールisDefaultParameterRequired)lambda_methodで (閉鎖、IServiceProvider、オブジェクト[] )Microsoft.AspNetCore.Mvc.ModelBinding.Binders.BinderTypeModelBinder.d__2.MoveNext() で ---例外がスローされた以前の位置からスタックトレースの終わり---

ルック私はこのバインダーをどこかに登録しなければならないのですか?

答えて

1

はあなたModelBinder属性にNameプロパティを削除するために、次のコードを使用して、バインダーに実際の結果値を設定することを忘れないでくださいしてみてください。

bindingContext.Result = ModelBindingResult.Success(resultModel);

関連する問題