@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 可能会更好。
我有@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 可能会更好。