ASP.NET Core和JQuery不突兀的AJAX无法工作

12
如果我在 .net 4.5 中启动一个新项目,打开 nuget 包管理器并搜索 ajax,然后点击安装 ajax unobtrusive,我就可以在 cshtml 文件中输入 @Ajax.___,例如 @Ajax.beginForm。
如果我使用 Dot Net Core 创建一个新项目... 就无法这样做,而是会给我一个无用的错误提示:“当前上下文中不存在 'Ajax' 的名称”。
我已经搜索了网络,但什么也没找到...
基本上,我想要像在 .net 中一样创建带有 Ajax 调用的表单。
例如:
"@using (Ajax.BeginForm("EmployeeMaster", "Home", new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "divEmp" })) {"
有人知道我还能尝试什么吗?
以上内容显示 Ajax 是来自 System.web.mvc.webviewpage 类型的 AjaxHelper 对象... 所以它可能从未被设计为用于 .net core。

json.package 中是否有 Ajax 库? - Bibek Aryal
1
没有json.package,但是有一个bower.json,并且它是一个包含的依赖项。 - David van Dugteren
我不确定这个,但是我只是写下来因为你还没有得到任何其他的回应。.NET Core需要有Ajax库,而且Ajax不像MVC那样默认被接受。尝试在Bower中添加它或者只需安装NuGet包。 - Bibek Aryal
2个回答

18

虽然 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的一部分。


0

OnSuccess的等效是什么?

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

没事了,这个方法解决了问题。<form asp-action="EmployeeMaster" asp-controller="Home" method="POST" data-ajax="true" data-ajax-update="divEmp" data-ajax-success="SuccessMessage" > - Shirish Joshi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接