Si vous souhaitez ouvrir le résultat de la méthode ActionPartial Action dans une fenêtre contextuelle, vous avez besoin d'un code contextuel de modèle pour cela.
jQuery UI est une option. http://jqueryui.com/demos/dialog/
1) Inclure référence jQuery UI dans votre page,
2) Ajoutez le script ci-dessous à votre page qui vous permet de convertir votre lien normal à un modèle pop-up
<script type="text/javascript">
$(function(){
$(".actionLink").click(function (e) {
var url = this.href;
var dialog = $("#dialog");
if ($("#dialog").length == 0) {
dialog = $('<div id="dialog" style="display:hidden"></div>').appendTo('body');
}
dialog.load(
url,
{}, // omit this param object to issue a GET request instead a POST request, otherwise you may provide post parameters within the object
function (responseText, textStatus, XMLHttpRequest) {
dialog.dialog({
close: function (event, ui) {
dialog.remove();
},
modal: true,
width: 460, resizable: false
});
}
);
return false;
});
});
</script>
De le résultat de votre action, vous pouvez renvoyer le balisage que vous souhaitez afficher dans le menu contextuel du modèle. La plupart du temps, vous retournerez une vue. Si vous souhaitez afficher une vue partielle, si c'est une requête ajax et afficher l'affichage normal s'il s'agit d'une requête normale, vous pouvez vérifier la méthode Request.IsAjaxRequest pour cela.
public ActionResult EditPartial(int id)
{
CustomerViewModel objCustomer=GetCustomer(id);
if(Request.IsAjaxRequest())
{
return View("Partial/Edit",objCustomer);
}
return View(objCustomer);
}
En supposant que vous avez 2 vues présentes pour montrer votre page normale et page partielle (pour pop-up modèle)
Je préfère nommer ma méthode d'action comme Edit
au lieu de EditPartial
, car il gère les demandes (ajax et normal)
Vous êtes juste génial monsieur. – OBL
Donc, après la mise en œuvre de la logique, je l'emmène sur une page partielle, où un utilisateur peut modifier les détails. En cliquant sur le bouton Enregistrer, je fais un appel ajax et enregistre les modifications dans la base de données en cas de succès return data = true. Comment puis-je fermer cette boîte de dialogue à partir de la page EditPartial en cas de succès? Merci! – OBL