ASP.NET Core和JQuery不显眼的AJAX无法正常工作

时间:2017-06-21 03:48:52

标签: asp.net ajax asp.net-core unobtrusive-ajax

如果我在.net 4.5中启动一个新项目并点击管理nuget包,请搜索ajax,然后点击install for ajax unobtrusive。然后我可以进入我的cshtml文件并键入@Ajax .___,例如@ Ajax.beginForm

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

“当前上下文中不存在'Ajax'这个名称”

我在网上搜索过,一无所获......

基本上我想在.net

中创建一个带有Ajax调用的表单

如:

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

任何人都知道我还能尝试什么?

在上面,我可以看到Ajax是一个类型为AjaxHelper的对象,它来自System.web.mvc.webviewpage ...所以它可能永远不适用于.net core

2 个答案:

答案 0 :(得分:10)

虽然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 STILL需要不显眼的ajax js文件才能正确连接这些data- *属性。这不是ASP.NET Core MVC的一部分

答案 1 :(得分:0)

OnSuccess的等效项是什么

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