2011-08-30 6 views
2

Je suis un novice et je viens de commencer à apprendre le asp.net mvc, comme je passais par le tutoriel de vue partielle et j'ai créé la petite application de test qui fonctionne bien.Pourquoi Asp.net vue partielle ne revient pas?

J'ai une page qui a une commande de clients et chaque élément a un bouton d'édition pour ajouter ou supprimer les articles et en appuyant dessus, je peux augmenter un article ou supprimer un article du panier. Et pour une telle action que je utilise

HTML.actionlink("+", "AddToCart", "Orders", new { orderid=tempcart.orderid }, 
new AjaxOptions()  
{ 
     OnBegin = "showplaces", 
     OnSuccess = "hideloader" 
}, null); 

quand je clique sur le bouton, il va à l'action AddToCart() et mettre à jour la table dans la base de données, mais il ne met pas à jour la vue partielle et toujours sur les séjours loader.gif la page et n'appelez pas la fonction hideloader().

Pouvez-vous s'il vous plaît me dire quel est le problème?

+2

Je vous suggère fortement de ne pas utiliser des trucs ajax intégrés. Cela ne fera rien d'autre que de vous dérouter. Utilisez JQuery: http://stackoverflow.com/questions/578443/asp-net-mvc-ajax-with-jquery et http://iridescence.no/post/Invoking-ASPNET-MVC-Actions-from-JavaScript-using -jQuery.aspx sont de très bons articles à ce sujet. – tugberk

+1

pouvez-vous s'il vous plaît coller la trace de la pile d'erreur ou donner plus de détails sur l'erreur. –

Répondre

3

1- utilisateur d'abord Ajax.ActionLink que vous mettez à jour la vue partielle

2- Une chose placer aussi le div id du panier afin qu'il puisse mise à jour quand se termine l'action.

3- Et j'ai eu ce problème une fois, donc je ne les éléments suivants:

add onFailure attribut dans Ht

Ajax.ActionLink("+", "AddToCart", "Orders", new { orderid=tempcart.orderid }, 
new AjaxOptions()  
{ 
     UpdateTargetId = "cart_divId", 
     OnBegin = "showplaces", 
     OnFailure = "ShowDOMExcep", 
     OnSuccess = "hideloader" 
}, null); 

et d'utiliser cette méthode pour obtenir exception DOM:

function ShowDOMExcep(context) { 

    var html = context.get_data(); 
    var placeholder = context.get_updateTarget(); 
    $(placeholder).html(html); 
    return false; 
} 

espérons que cela aide ...

+1

@S D'abord merci pour tout pointeur. Oui, j'ai trouvé une erreur lors de la régénération de la vue partielle. Merci –

Questions connexes