2010-07-27 18 views
2

Je veux créer un formulaire simple pour ajouter de nouveaux produits en utilisant jqModal.
jqModal et ASP.NET MVC

Voir/Accueil/Index.aspx:

<script type="text/javascript"> 
     $(document).ready(function() { 

      $('#addProductControlSection').jqm({ modal: true, 
       ajax: '<%: Url.Action("AddProduct", "Home") %>', 
       onHide: myAddClose 
      }); 

      function myAddClose(hash) { 
       hash.w.fadeOut('1000', function() { hash.o.remove(); }); 
      } 

     }); 
    </script> 

    // rest of the code... 

<a href="#" class="jqModal">Add product</a> 

<div id="addProductControlSection" class="jqmWindow"> 

</div> 

HomeController:

public ActionResult AddProduct() 
{ 
    return View(); 
} 

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult AddProduct(Product product) 
{ 
    if(!ModelState.IsValid) 
    { 
     // how to show an error? 
    } 

    _productRepository.Save(product); 
    // how to display 'success' or something... 
} 

Je ne sais pas comment mettre en œuvre la validation. Si l'utilisateur entre une valeur incorrecte pour le Product.Price et clique sur le bouton Enregistrer, je ne souhaite pas fermer le formulaire. Je voudrais afficher un message d'erreur comme celui lors de l'utilisation Résumé de validation sur les vues normales.

Merci beaucoup!

Répondre

0

Jetez un oeil à la jQuery validation plugin ou en utilisant MVC Model Validation pour générer automatiquement le JS. Le fait que ce soit dans un dialogue modal ne devrait avoir aucun effet sur ces techniques.

+0

Lorsque je clique sur le bouton Enregistrer dans la boîte de dialogue modale, j'entre le if (! ModelState.IsValid) et le retour View ("AddProduct", le produit) est appelé. Après cela, le dialogue modal est fermé et je veux l'empêcher. –

+0

En ce qui concerne le bouton de soumission ... J'ai oublié d'inclure les scripts 'MicrosoftAjax.js' et 'MicrosoftMvcAjax.js'. –