If I start a new project in .net 4.5 and hit manage nuget packages, search for ajax, then hit install for ajax unobtrusive. I can then go into my cshtml file and type @Ajax.___ e.g. @Ajax.beginForm
If I create a new project with Dot Net Core... I cannot, where instead it gives me the useless error:
"The name 'Ajax' does not exist in the current context"
I've searched the web, found nothing...
Basically I want to make a Form with an Ajax call as you could do in .net
Such as:
"@using (Ajax.BeginForm("EmployeeMaster", "Home", new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "divEmp" })) {
"
Anyone know what else I can try?
In the above, I can see that Ajax is a object of type AjaxHelper which comes from System.web.mvc.webviewpage... so maybe its never meant to be available for .net core
While the Ajax.BeginForm()
methods do not work, the actual unobtrusive Ajax html does. The C# methods just help generate the Html form tags. Forgive me in thse syntax is wrong, this is from memory, but you get the idea
@using (Ajax.BeginForm("EmployeeMaster", "Home", new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "divEmp" }))
{
//form content
}
becomes
<form asp-action="EmployeeMaster" asp-controller="Home" method="POST" data-ajax="true" data-ajax-update="divEmp">
<!-- form content-->
</form>
NOTE: The above HTML STILL needs the unobtrusive ajax js files for it to wire up these data-* attributes correctly. This is not a part of ASP.NET Core MVC
来源:https://stackoverflow.com/questions/44666553/asp-net-core-and-jquery-unobtrusive-ajax-not-working