0

The question is in the title, actually - let's say I have a simple class like this:

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

When I use it in action method, like this:

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

what value will product.ID have inside this action method? Maybe it will be default value for Int32? And null in case ID is reference-type? I'm just interested, didn't find it on the web.

4

2 回答 2

1

Since there will be no initialization at all, the property will have its default value.

于 2009-11-24T10:10:48.990 回答
0

The DefaultModelBinder, which you are using if nothing else is specified, indeed uses default(T) for unbound values.

To change this, you can modify binding behavior per-parameter in action methods (as you are doing with the BindAttribute in your example), or per-type in eg. Global.asax.

于 2009-11-24T10:04:00.453 回答