2011-01-26 8 views
1

Peut-être que quelqu'un là-bas peut m'aider à comprendre ce qui se passe. J'utilise jQuery UI dialog() pour afficher les partiels html dans mon projet. Lorsqu'un utilisateur clique sur Ajouter nouveau, il affiche le formulaire d'ajout de client. Toutefois, lorsque l'utilisateur clique sur les boutons Ajouter ou Annuler dans la boîte de dialogue, j'obtiens une erreur, "$ (this) .dialog n'est pas une fonction". Si je supprime l'événement ouvert et affiche un formulaire statique dans la boîte de dialogue les boutons le travail bien.ASP.Net MVC jQuery Dialog Partiel

ClientsController

public ActionResult ajaxCreateClient() 
{ 
    Client c = new Client(); 
    AddToViewData(c); // adds some additional info about client 
    return PartialView("__ClientForm", c); 
} 

Voir: Contacts/Créer

.... 
<p> 
@Html.LabelForField(model => model.Client.Name) <!-- custom extension that I wrote --> 
@Html.TextboxFor(model => model.Client.Name) 
<a id="btnAddNew" href="javascript:void()">Add New</a> 
</p> 
.... 
<div id="addNew"></div> 

jQuery

$(document).ready(function() { 
    $("#btnAddNew").click(function() { 
     $("#addNew").dialog("open"); 
    }); 

    $("#addNew").dialog({ 
     autoOpen: false, 
     title: "Add Client", 
     width: 410, 
     modal: true, 
     resizable: false, 
     open: function(event, ui) { 
      $(this).load("@Url.Action("ajaxCreateClient", "Clients")"); 
     }, 
     buttons: 
     { 
      "Add": function() { 
       // validate() and do something 
       $(this).dialog("close"); 
      }, 
      "Cancel": function() { 
       // do something else 
       $(this).dialog("close"); 
      } 
     } 
    }); 
}); 

Merci!

Répondre

1

Essayez comme ceci:

$('#addNew').dialog('close'); 
+0

Oui - je lui ai donné précédemment que d'essayer sans succès. Mais merci. – gnome

+0

Hmm, c'est étrange. Avez-vous une erreur javascript? Essayez de supprimer le code précédant l'appel de cette méthode. –

+0

Oui très étrange. Il produit le même message d'erreur. – gnome