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

时间:2015-01-21 14:55:11

标签: asp.net-mvc model-binding custom-model-binder

我有这样的行动方法:

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)

这很好用。 然而,当参数为Optional时,我不知道如何处理这种情况。我可以检查参数是否设置,但是我想返回默认值,我无法在模型绑定器中看到如何确定。换句话说,如何才能看到默认值为True,如果没有为MyBoolean属性指定值,则返回该值?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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