代码之家  ›  专栏  ›  技术社区  ›  chester89

如果在模型绑定时排除了属性或字段,它将具有什么值?

  •  0
  • chester89  · 技术社区  · 16 年前

    实际上,问题就在标题中——假设我有一个简单的类,如下所示:

    public class Product {
       public Int32 ID { get; set; }
       public String Name { get; set; }
       //...
    }
    

    当我在行动方法中使用它时,如下所示:

    public ViewResult DoSomething([Bind(Exclude="ID")]Product product] {
     //...
    }
    

    2 回复  |  直到 16 年前
        1
  •  1
  •   Thomas Weller    16 年前

        2
  •  0
  •   bzlm    16 年前

    这个 DefaultModelBinder ,如果没有指定其他内容,则您正在使用它,它确实使用 default(T) 对于未绑定的值。

    要改变这一点,您可以修改action方法中每个参数的绑定行为(就像您对 BindAttribute 在您的示例中),或按类型输入,例如Global.asax。