Comment utiliser Ajax dans MVC 3?
J'ai un formulaire que j'aimerais vous soumettre par le biais de l'Ajax. Ce formulaire sont stockées dans une vue partielle - de sorte que l'ensemble de la vue partielle correspond à une seule forme.
- Je générer des dix de ces formes avec une boucle foreach:
@foreach (Product p in Model.Products)
{
@Html.Partial("_EditProduct", p)
}
Cela fonctionne bien.
Dans le _EditProduct vue partielle, j'ai:
@using (Ajax.BeginForm("Update", "Product", new AjaxOptions { UpdateTargetId = "updateStatus" })) {
<span id="updateStatus">Update will go here</span> }
//Product fields
<div>
<input type="submit" value="Update" class="btn"/>
</div>
}
Cliquant sur un bouton envoyer des messages à un contrôleur:
[HttpPost]
public JsonResult Update(int id, FormCollection collection)
{
ProductService pService = new ProductService();
Product p =pService.Find(id);
UpdateModel(p);
return Json(p);
}
Cette mise à jour du produit, mais le retour se bloque à cause de la sérialisation d'erreur.
Le principal problème est que j'ai du mal à trouver une bonne ressource sur MVC 3, en particulier l'Ajax partie. Des tutoriels et des blogs semblent tout faire dans une manière très différente. Idéalement, j'aimerais utiliser autant de .NET et MVC 3 de fonctionnalités que possible, plutôt que d'écrire des charges de jQuery/JavaScript.
Merci
Edit: Juste pour ajouter, je tiens à rester loin de MS Ajax Control Toolkit
Vous devez vous connecter pour publier un commentaire.
sur la sérialisation d'erreur...autant que je me souvienne, il va jeter si vous avez paresseux chargé propriétés du Produit et de la db connexion est fermée. Vous pourriez faire comme retour Json(new {produit.une,produit.b,le produit.c}) etc.
MVC a toujours eu Ajax aides depuis sa première version. Ceux-ci vous permettent de générer des “ajax” éléments html.Toutefois, dans ASP.NET MVC 3 ces aides ont été sensiblement améliorées. Ils ne s'appuient plus sur le MS-Ajax client bibliothèques de faire leur travail au lieu de cela, ils utilisent jQuery et le discret jQuery extensions fournis avec MVC3. Ils utilisent également HTML5 attributs data - annoter un élément en particulier avec des métadonnées plutôt que de définir des scripts inline.
L'exemple ci-dessus génère le balisage suivant avec MVC3:
Donc, ont jQuery et jQuery.discrète-ajax scripts inclus et l'utilisation de javascript pour envoyer le formulaire, si elle est activée.
Également jeter un oeil à http://dotmac.rationalmind.net/2011/03/basic-ajax-with-mvc3-razor/
Asp.net MVC, Ajax
Comme @Dipti Mehta mentionné il y a
Ajax
aides construit en Asp.net MVC depuis la V1, mais je tiens à souligner que ce n'est pas la seule façon de le faire (et que je vois les choses, pas beaucoup de développeurs utilisent cette possibilité).Alors quoi d'autre est-il en termes d'Ajax? Bien. Vous pouvez utiliser l'habituel
Html
d'aides et d'écriture plutôt simple jQuery. De cette façon, vous avez un contrôle total sur votre client de traitement (que ce soit de spécial mise en forme des données, la préparation de l'objet complexe qui doit être envoyé au serveur, etc.).Mais, fondamentalement, je tiens également à vous pour quelques billets de blog, qui va vous montrer quelques très utile tous les jours scénarios que vous pouvez venir à travers, tout en développant Asp.net MVC + applications Ajax:
IList<T>
dans Asp.net MVCEnvoi complexe des objets Javascript à l'aide de jQuery Ajax Asp.net MVC
d'autres Asp.net MVC postes liés à l'