Se la proprietà o il campo è esclusa quando il modello vincolante, che valore avrà?
-
21-09-2019 - |
Domanda
La domanda è nel titolo, in realtà - diciamo che ho una semplice classe come questa:
public class Product {
public Int32 ID { get; set; }
public String Name { get; set; }
//...
}
Quando uso nel metodo di azione, in questo modo:
public ViewResult DoSomething([Bind(Exclude="ID")]Product product] {
//...
}
che valore avrà product.ID avere all'interno di questo metodo di azione? Forse sarà valore predefinito per Int32? E nulla nel caso in cui ID è il riferimento di tipo? Sono solo interessato, non ha trovato sul web.
Soluzione
Dato che non ci sarà l'inizializzazione a tutti, la proprietà avrà il valore predefinito.
Altri suggerimenti
Il DefaultModelBinder , che si si utilizza se non altro è specificato, infatti utilizza default(T)
per i valori non legati.
Per modificare questa impostazione, è possibile modificare il comportamento vincolante per-parametro nei metodi di azione (come si sta facendo con il BindAttribute
nel tuo esempio), o per ogni tipo di esempio. Global.asax.