c# - 扩展 ASP.NET MVC 2 模型绑定(bind)器以适用于 0、1 bool 值

标签 c# asp.net-mvc-2

我注意到 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 模型绑定(bind)器以适用于 0、1 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4786591/

相关文章:

c# - 在 Windows 中获取本地计算机用户名列表

c# - 找不到可安装的 ISAM

asp.net-mvc - 未找到或错误构建的路线

jquery - ASP.NET MVC : Send back HTML inside Json object

asp.net-mvc - MVC3 自定义输出缓存

c# - 使用 HttpContent.ReadAsAsync<T> 解析带有一个对象或数组的响应

c# - 在 ContentPresenter 子控件中设置属性

c# - 我可以用派生类型覆盖吗?

javascript - 使用 JavaScript 执行带有参数的操作 Controller 的最佳方法是什么?

asp.net-mvc-2 - 基于两个属性的自定义模型验证。一个影响另一个