2009-10-19 10 views
0

Je suppose que cela est une question de noob, mais ici il vient:Ajax.ActionLink, comment envoyer l'objet sélectionné dans la vue partielle? asp.net mvc

J'ai une liste de produits:

<% foreach (var item in Model) { %> 

    <tr> 
     <td> 
      <%= Html.Encode(item.code) %> 
     </td> 
     <td> 
      <%= Html.Encode(String.Format("{0:g}", item.date)) %> 
     </td> 
     <td> 
      <%= Html.Encode(item.category) %> 
     </td> 
     <td> 
      <%= Html.Encode(item.description) %> 
     </td> 
     <td> 
      <%= Html.Encode(String.Format("{0:F}", item.price)) %> 
     </td> 
    ...... 
} 

Et une vue partielle après tous ces (dans la même page):

<div id="productForEdit"> 
      <fieldset> 
       <legend>Your Selected Product</legend> 
       <% Html.RenderPartial("~/Views/Products/Edit", productObject); %> 
      </fieldset> 
    </div> 

Comment puis-je utiliser Ajax.ActionLink, de sorte que lorsque je clique sur le bouton de la description d'un produit, le produit sera branché dans la vue partielle du bas de la page? J'ai essayé une combinaison avec UpdateTargetId="productForEdit", mais je n'ai pas eu de succès.

Le but est d'avoir un outil d'édition rapide dans la page.

+0

Jetez un coup d'oeil ici http://stackoverflow.com/questions/7295835/how-can-i-load-partial-view-inside-the-view et ici http://pluralsight.com/training/players/ PSODPlayer? Auteur = scott-allen & nom = mvc3-bâtiment-ajax & mode = live & clip = 0 & cours = aspdotnet-mvc3-intro –

Répondre

1

Je pense que cela devrait fonctionner:

<td> 
    <%= Ajax.ActionLink(Html.Encode(item.description), /* link text */ 
         "GetProduct", /* action name */ 
         "Product", /* controller name */ 
         new { productCode = Model.code }, /* route values */ 
         new AjaxOptions() { InsertionMode = InsertionMode.Replace, 
              UpdateTargetId = "productForEdit" }) %> 
</td> 

Cela ne s'attend un ProductController avec une action nommée GetProduct, qui prend un paramètre productCode. Avoir cette action retourne la vue "Produits/Modifier". Vous pouvez également passer le produit entier en tant que paramètre à la méthode d'action, mais cela ne change rien à l'idée de base. Bonne chance!

+0

Votre réponse et ceci http://blog.goyello.com/2009/09/24/asp-net-mvc- issue-with-ajax-actionlink/résolu mon problème. Merci! – andreiursan

Questions connexes