2011-07-14 75 views
1

我有一個網格,我需要將Details列添加到網格中,並且當選擇detail列時,該行的詳細信息應該顯示在當前網格的正下方。Ajax.ActionLink不工作MVC

我的代碼:

<% 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(); %> 


我的控制器代碼:

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

我有一個partailview BatchDetailsByStatus是獲取所有所需的數據顯示。

但是,當我點擊詳細信息鏈接沒有任何反應,它不起作用。

我錯過了什麼。

感謝

回答

1

替換ReportsController使用報告(無控制器控制器名稱)Ajax.ActionLink,和它的工作

+0

是的,因爲路由引擎會自動將「控制」到你的路由字符串的結尾,爲其「按公約進行配置」的一部分。起初,我發現這也有點違反直覺。 –