我注意到使用ASP.NET MVC 2,模型绑定(bind)器不会将“1”和“0”分别识别为true
和false
。是否可以将模型绑定(bind)器全局扩展为以识别它们并将其转换为适当的 bool 值?
谢谢!
最佳答案
各行各业应该做的工作:
public class BBinder : DefaultModelBinder
{
public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
var value = bindingContext.ValueProvider.GetValue(bindingContext.ModelName);
if (value != null)
{
if (value.AttemptedValue == "1")
{
return true;
}
else if (value.AttemptedValue == "0")
{
return false;
}
}
return base.BindModel(controllerContext, bindingContext);
}
}
并注册
Application_Start
:ModelBinders.Binders.Add(typeof(bool), new BBinder());
关于c# - 扩展ASP.NET MVC 2 Model Binder以使用0、1 bool 值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4786591/