J'utilise javascript pour appeler le contrôleur pour traiter une fonction. La valeur du paramètre (nom en résumé) est nulle lorsque le champ est privé. Cela fonctionne lorsque le champ est défini sur public. Est-ce que le public est le seul moyen? ou il y a une meilleure façon de le faire? merci d'avance.javascript call Paramètre MVC Controller toujours NULL lorsque le champ d'objet est privé
Mon objet
[DataContract]
public class Summary
{
[DataMember]
public int id { private set; get; }
[DataMember]
public string name { private set; get; }
public summary() {}
public summary(int id, string name)
{
id = id;
name = name;
}
}
MVC contrôleur
public ActionResult SetSummary(Summary summary)
{
string anme = summary.name; **<-- null if private**
...
}
Javascript
$http.post("MyController/SetSummary", JSON.stringify({
summary: mySummaryObject}))
.success(function (data, status, headers, config) {
....
}
Oui, il doit être 'public' (les' DefaultModelBinder' Initialise une instance de votre modèle, puis définit ses propriétés - il ne peut pas le définir à moins que son «public») –