2009-08-19 6 views
0

Je voudrais utiliser la boîte de dialogue de jQuery pour remplacer du code que j'utilise actuellement dans une application ASP.NET MVC. L'ancien code utilisait les boutons 'submit' avec différents paramètres 'value'. J'aimerais aussi savoir s'il existe une meilleure approche.Comment soumettre une boîte de dialogue jQuery en utilisant des boutons avec des valeurs différentes

Voici un exemple du code existant dans la vue:

 <%using (Html.BeginForm("SubmitValue", "MyController", FormMethod.Post)) 
    { %> 
     <span class="field-description">My Value: </span> 
     <input id="myTextValue" maxlength="6" name="myValue" type="text"/> 
     <%=Html.Hidden("myModel.myProperty1", Model.PropertyValue1) %> 
     <%=Html.Hidden("myModel.myProperty2", Model.PropertyValue2) %> 
     <div class="pageaction button"> 
      <strong> 
       <input name="submitButton" type="submit" value="Save"/> 
      </strong> 
      <strong> 
       <input name="submitButton" type="submit" value="Delete"/> 
      </strong> 
      <strong> 
       <input type="button" value="Cancel" /> 
      </strong> 
     </div> 
    <% } %> 

Le contrôleur aura besoin la valeur du bouton d'envoi enfoncé:

[AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult SubmitValue(MyModel model, string submitButton) 
    { 
     _request.myProperty1= model.PropertyValue1; 
     _request.myProperty2= model.PropertyValue2; 
     if (submitButton == "Save") 
     {_myService.UpdateValue(_request);} 
     else 
     {_myService.DeleteValue(_request);} 

     return View("MyView", _request); 
    } 

Pour l'interface utilisateur jQuery, je aime utiliser la partie 'boutons' du code pour gérer les valeurs de soumission.

});

Répondre

0

Je viens d'avoir un bref aperçu de votre question et même si je pense que ce que vous essayez de faire est faisable, je ne pense pas que ce soit la bonne façon.

L'idée générale devrait être d'avoir une séparation des préoccupations. Je pense que si vous commencez à regrouper la fonction en une seule action, cette action a la possibilité de devenir encombrée et difficile à maintenir.

Je pense que vous devriez essayer d'aller plus vers un modèle où chaque bouton d'appel appelle son propre jQuery ActionResult. Cela conduit ensuite à la séparation des préoccupations, maintient l'ActionResult agréable et bien rangé et décompose votre code.

Il n'y a aucune raison pour que vous ne puissiez pas, à partir du résultat de l'action, appeler une autre méthode qui encapsule toutes les actions du bouton Soumettre, mais que vous redescendez le chemin sombre vers le désordre.

De plus, je viens de remarquer que votre fenêtre de dialogue est en train de faire pas mal et qu'elle risque aussi d'être encombrée. Je, et c'est une vue personnelle seulement, préférerais avoir trois fenêtres de dialogue chacune faisant sa propre chose. J'aurais ma configuration css donc un changement se reflète dans chacun d'entre eux. Ensuite, chaque boîte de dialogue ferait un post à son propre ActionResult.

Si votre question est horriblement mauvaise, faites-le moi savoir et j'essaierai de vous aider.

Questions connexes