如何确定自定义模型绑定器中可选参数的默认值



我有一个这样的操作方法:

Function Index(Optional MyBoolean As Boolean = True) As ActionResult

以及一个处理整数值的自定义模型绑定器,以便我可以像这样调用它:

/controller/Index?MyBoolean=1

我的模型绑定器在 BindModel 方法中执行以下操作:

'convert the string to a boolean
return bindingContext.ValueProvider.GetValue(bindingContext.ModelName).AttemptedValue.ToBoolean, False)

这工作正常。但是,当参数为可选时,我不知道如何处理这种情况。我可以检查参数是否未设置,但随后我想返回默认值,并且我看不到如何在模型绑定器中确定它。换句话说,如果没有为 MyBoolean 属性指定值,我如何看到默认值为 True ,并返回该值?

要有一个可选参数,变量必须是可为空的,这样,如果没有传递任何内容,该值将被null。不过,我不确定您为什么为此创建自定义模型绑定器;默认模型绑定器可以轻松地将字符串转换为布尔值。

事实证明,如果您只是在 BindModel 中返回False,则默认的 MVC 模型绑定将用其默认值填充参数。咄。

相关内容

  • 没有找到相关文章

最新更新