2011-07-14 15 views
1

グリッドがあります。詳細列をグリッドに追加する必要があります。詳細列が選択されていると、その行の詳細が現在のグリッドのすぐ下に表示されます。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

置き換えAjax.ActionLinkのレポート(コントローラなしコントローラ名)とReportsController、それが働いた

+0

はい、ルーティングエンジンが自動的にルーティング文字列の末尾に「コントローラ」を追加するため、など「条約による構成」の一部。私はこのことがやや直観的ではないことも最初は分かりました。 –

関連する問題