@Ajax.ActionLink 重定向到上一页而不是将数据发送到控制器

@Ajax.ActionLink redirects to previous page instead to send data to controller

我有@Ajax.ActionLink 调用,我试图通过该调用将数据传递给控制器​​并刷新局部视图。当我点击 link 而不是将数据传递给控制器​​时,它会将我重定向到上一页。

Ajax代码:

@Ajax.ActionLink(@mainType.Descr, "GetChosenFaqSubCategory", "FAQ",
          new { @TabCode = @mainType.TabCode },
          new AjaxOptions
          {
              UpdateTargetId = "reloadFaq",
              HttpMethod = "POST",
              InsertionMode = InsertionMode.Replace,
          })

控制器:

[HttpPost]
    public ActionResult GetChosenFaqSubCategory(string TapCode)
    {
        string pFilter = "WebFaqCategoryCd=" + TapCode;

        code...

        return PartialView("GlobalFAQ", List);
    }

作为我正在加载的捆绑包:

   bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include(
                        "~/Scripts/jquery-ui-{version}.js"));

   bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                        "~/Scripts/jquery.unobtrusive*",
                        "~/Scripts/jquery.validate*"));

   bundles.Add(new ScriptBundle("~/bundles/jqueryunobtr").Include(
               "~/Scripts/jquery-3.6.0.min.js"));

    bundles.Add(new ScriptBundle("~/bundles/ajax").Include(
               "~/Scripts/MicrosoftAjax*",
               "~/Scripts/MicrosoftMvcAjax*"));

在Web.config允许不显眼:

<add key="UnobtrusiveJavaScriptEnabled" value="true" />
@Ajax.ActionLink(@mainType.Descr, "GetChosenFaqSubCategory", "FAQ",
          new { @TabCode = @mainType.TabCode },
          new AjaxOptions
          {
              UpdateTargetId = "reloadFaq",
              HttpMethod = "POST",
              InsertionMode = InsertionMode.Replace,
          })

你在这里有@TabCode,但它会尝试在你的参数中寻找@TabCode。尝试使用“TabCode = @mainType.TabCode”

为了更好的可读性,您似乎在使用 int 来标识所选的选项卡。在没有文档的情况下查看 TabId 可能会更好。