【问题标题】:Ajax.ActionLink not working MVCAjax.ActionLink 不工作 MVC
【发布时间】:2011-07-14 14:08:37
【问题描述】:

我有一个网格,我需要将详细信息列添加到网格中,并选择详细列表时,该行的详细信息应显示在当前网格下方。

我的代码:

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

我有一个 parttailview BatchDetailsByStatus,它可以获取所有需要的数据来显示。

但是当我点击详细信息链接时没有任何反应,它不起作用。

我错过了什么。

谢谢

【问题讨论】:

    标签: asp.net-mvc asp.net-ajax actionlink


    【解决方案1】:

    在 Ajax.ActionLink 中将 ReportsController 替换为 Reports(不带 Controller 的控制器名称),并且成功了

    【讨论】:

    • 是的,因为路由引擎会自动将“控制器”添加到您的路由字符串的末尾,作为其“按约定配置”的一部分。一开始我也觉得这有点违反直觉。
    猜你喜欢
    • 2011-08-29
    • 2014-11-25
    • 2012-02-05
    • 1970-01-01
    • 1970-01-01
    • 2014-01-26
    • 1970-01-01
    • 2011-09-16
    • 1970-01-01
    相关资源
    最近更新 更多