ASP.NET 核心和 JQuery 不显眼 AJAX 不工作

ASP.NET Core and JQuery unobtrusive AJAX not working

如果我在 .net 4.5 中开始一个新项目并点击管理 nuget 包,搜索 ajax,然后点击安装 ajax unobtrusive。然后我可以进入我的 cshtml 文件并输入 @Ajax.___ 例如@Ajax.beginForm

如果我使用 Dot Net Core 创建一个新项目...我不能,它会给我一个无用的错误:

"The name 'Ajax' does not exist in the current context"

我在网上搜索过,什么也没找到...

基本上我想制作一个带有 Ajax 调用的表单,就像您在 .net 中所做的那样

如:

"@using (Ajax.BeginForm("EmployeeMaster", "Home", new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "divEmp" })) {"

有人知道我还能尝试什么吗?

在上面,我可以看到 Ajax 是一个类型为 AjaxHelper 的对象,它来自 System.web.mvc.webviewpage... 所以也许它永远不会用于 .净核心

虽然 Ajax.BeginForm() 方法不起作用,但实际不显眼的 Ajax html 却起作用。 C# 方法仅帮助生成 Html 表单标记。请原谅我这些语法错误,这是凭记忆,但你明白了

@using (Ajax.BeginForm("EmployeeMaster", "Home", new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "divEmp" }))
{
    //form content
}

变成

<form asp-action="EmployeeMaster" asp-controller="Home" method="POST" data-ajax="true" data-ajax-update="divEmp">
    <!-- form content-->
</form>

注意: 上面的 HTML 仍然需要不显眼的 ajax js 文件才能正确连接这些 data-* 属性。这不是 ASP.NET Core MVC

的一部分

OnSuccess 等价于什么

@using (Ajax.BeginForm("EmployeeMaster", "Home", new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "divEmp", OnSuccess="ShowMessage" }))
{
    //form content
}