我注意到使用ASP.NET MVC 2,模型绑定(bind)器不会将“1”和“0”分别识别为truefalse。是否可以将模型绑定(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/

10-13 06:29