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

时间:2009-11-24 10:01:01

标签: asp.net-mvc bind model-binding

问题在于标题,实际上 - 让我说我有一个像这样的简单类:

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

当我在动作方法中使用它时,像这样:

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

product.ID在这个动作方法中有什么价值?也许这是Int32的默认值?如果ID是引用类型,则为null?我只是感兴趣,没有在网上找到它。

2 个答案:

答案 0 :(得分:1)

由于根本没有初始化,因此该属性将具有其默认值。

答案 1 :(得分:0)

如果没有指定其他内容,您正在使用的DefaultModelBinder确实使用default(T)表示未绑定的值。

要更改此设置,您可以在操作方法中修改每个参数的绑定行为(就像您在示例中使用BindAttribute一样),或者在每个类型中修改例如。 Global.asax中。