0

我有一个像这样的动作方法:

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)

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

4

2 回答 2

0

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

于 2015-01-21T15:56:20.073 回答
0

事实证明,如果你只是 return Falsein BindModel,默认的 MVC 模型绑定将使用其默认值填充参数。呃。

于 2015-01-27T01:22:32.687 回答