Je suis un programmeur web novice alors pardonnez-moi si une partie de mon "jargon" n'est pas correcte. J'ai un projet utilisant ASP.NET utilisant le framework MVC3.
Je travaille sur une vue d'administration où l'administrateur modifiera une liste d'équipements. Une des fonctions est un bouton "mise à jour" que je souhaite utiliser jquery pour éditer dynamiquement l'entrée sur la page Web après l'envoi d'un message au contrôleur MVC.
Je présume que cette approche est «sûre» dans un seul cadre d'administration où il y a un problème minimal de désynchronisation de la page Web avec la base de données.
J'ai créé une vue fortement typée et j'espérais transmettre les données du modèle au contrôle MVC à l'aide d'une publication AJAX.
Dans le post suivant, j'ai trouvé quelque chose qui est similaire à ce que je cherche à faire: JQuery Ajax et ASP.NET MVC3 provoquant des paramètres nuls
J'utiliserai l'exemple de code de l'article ci-dessus.
Modèle:
public class AddressInfo
{
public string Address1 { get; set; }
public string Address2 { get; set; }
public string City { get; set; }
public string State { get; set; }
public string ZipCode { get; set; }
public string Country { get; set; }
}
Manette:
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Check(AddressInfo addressInfo)
{
return Json(new { success = true });
}
}
script dans View:
<script type="text/javascript">
var ai = {
Address1: "423 Judy Road",
Address2: "1001",
City: "New York",
State: "NY",
ZipCode: "10301",
Country: "USA"
};
$.ajax({
url: '/home/check',
type: 'POST',
data: JSON.stringify(ai),
contentType: 'application/json; charset=utf-8',
success: function (data.success) {
alert(data);
},
error: function () {
alert("error");
}
});
</script>
Je n'ai pas encore eu l'occasion d'utiliser ce qui précède. Mais je me demandais si c'était la «meilleure» méthode pour renvoyer les données du modèle au contrôle MVC en utilisant AJAX?
Dois-je être préoccupé par la divulgation des informations du modèle?