【问题标题】:How to place a Custom Model Binder on a Controller Action如何在控制器操作上放置自定义模型绑定器
【发布时间】:2016-10-28 17:26:27
【问题描述】:

我有一个要放置自定义模型绑定器的操作。我不想要一个全局活页夹活页夹。我只想要我使用 [ModelBinder(...)] 指定的操作的活页夹

当我使用下面的代码时,我的 Binder 永远不会被调用,我的操作也不会。

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

堆栈跟踪:

在 Microsoft.Extensions..Internal.ActivatorUtilities.GetService(IServiceProvider sp, Type type, Type requiredBy, Boolean isDefaultParameterRequired) 在 lambda_method(闭包,IServiceProvider,对象 []) 在 Microsoft.AspNetCore.Mvc.ModelBinding.Binders.BinderTypeModelBinder.d__2.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪---

看来我必须在某个地方注册这个活页夹?

【问题讨论】:

    标签: asp.net-core asp.net-core-mvc model-binding asp.net-core-1.0


    【解决方案1】:

    尝试删除 ModelBinder 属性上的 Name 属性,不要忘记使用下一个代码在 binder 中设置实际结果值:

    bindingContext.Result = ModelBindingResult.Success(resultModel);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-03
      • 2012-07-31
      相关资源
      最近更新 更多