Si la propriété ou sur le terrain est exclu lorsque le modèle contraignant, quelle valeur faut-il avoir?

StackOverflow https://stackoverflow.com/questions/1789081

  •  21-09-2019
  •  | 
  •  

Question

La question est dans le titre, en fait - disons que j'ai une classe simple comme ceci:

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

Quand je l'utilise dans la méthode d'action, comme ceci:

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

quelle valeur sera product.ID avoir à l'intérieur de cette méthode d'action? Peut-être que ce sera la valeur par défaut pour Int32? Et nul dans l'ID de cas est de type de référence? Je suis intéressé, n'a pas trouvé sur le web.

Était-ce utile?

La solution

Comme il n'y aura pas d'initialisation du tout, la propriété aura sa valeur par défaut.

Autres conseils

Le DefaultModelBinder , que vous utilisent si rien d'autre est spécifié, utilise en effet default(T) pour les valeurs non liées.

Pour changer cela, vous pouvez modifier le comportement de liaison par paramètre dans les méthodes d'action (comme vous le faites avec le BindAttribute dans votre exemple), ou par type, par exemple dans. Global.asax.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top