2011-07-14 4 views
1

J'ai une grille, j'ai besoin d'ajouter une colonne Détails à la grille et lorsque la colonne de détail est sélectionnée, les détails de cette ligne doivent apparaître juste en dessous de la grille actuelle.Ajax.ActionLink ne fonctionne pas MVC

Mon code:

<% Html.Grid(Model.InnerModel.StatusRecords) 
     .Empty("No data available") 
     .Attributes(new Hash(id => "resultsTable")) 
     .Columns(column => 
     { 
      column.For(x => Ajax.ActionLink("Details", "BatchDetailsByStatus", "ReportsController", new { statusId = x.Status, jobNo = Model.InnerModel.JobNumber }, new AjaxOptions 
      { 
       HttpMethod = "GET", 
       UpdateTargetId = "StatusBatchDetailsDiv"})).Named("Details").DoNotEncode(); 
      column.For(x => x.Status); 
      column.For(x => x.TotalCount).Named("Count"); 
     }).Render(); %> 


Mon code contrôleur:

[AcceptVerbs(HttpVerbs.Get)] 
    public ActionResult BatchDetailsByStatus(int statusId, string jobNo) 
    { 
     var batchModel = BatchByStatus.GetBatchDetailsByStatus(statusId, jobNo); 
     return PartialView("BatchDetailsByStatus", batchModel); 
    } 

J'ai un partailview BatchDetailsByStatus qui obtient toutes les données nécessaires à l'affichage. Mais lorsque je clique sur le lien Détails, rien ne se passe, cela ne fonctionne pas.

Qu'est-ce qui me manque?

Merci

Répondre

1

Remplacée ReportsController avec rapports (nom du contrôleur sans contrôleur) dans Ajax.ActionLink, et il a travaillé

+0

Oui, parce que le moteur de routage ajoute automatiquement « contrôleur » à la fin de votre chaîne de routage, comme partie de sa "Configuration par Convention". J'ai trouvé cela un peu contre-intuitif aussi, au début. –

Questions connexes