我正在研究Asp.Net MVC核心Web应用程序,并且在razor视图中添加了以下表单,以构建Ajax表单:-
<form method="get" data-ajax="true" data-ajax-url="/Submission/Create" data-ajax-method="get" data-ajax-update="#panel" data-ajax-failure="failed">
<div class="form-group">
<input type="submit" value="Submit" class="btn btn-primary" />
</div>
</form>
并且我在脚本中添加了以下内容:-
@section Scripts {
@{await Html.RenderPartialAsync("_ValidationScriptsPartial");
<script src="~/js/jquery.unobtrusive-ajax.js"></script>
}
}
但是当我单击提交按钮时,我在浏览器控制台上收到此错误:-
HTTP404: NOT FOUND - The server has not found anything matching the requested URI (Uniform Resource Identifier).
(XHR)GET - https://localhost:44363/Submission/Create?X-Requested-With=XMLHttpRequest&_=1590002030070
任何建议?
无法找到Create
操作,请确保为data-ajax-url
传递正确的值。
您可以使用Html.Action
Herlper创建url
:
data-ajax-url="@(Html.Action("Create", "Submission"))"
这是我的工作代码:
<div>
<form method="get" data-ajax="true" data-ajax-url="/Submission/Create" data-ajax-method="get" data-ajax-update="#panel" data-ajax-failure="failed">
<div class="form-group">
<input type="submit" value="Submit" class="btn btn-primary" />
</div>
</form>
</div>
@section Scripts {
@{await Html.RenderPartialAsync("_ValidationScriptsPartial");
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-ajax-unobtrusive/3.2.6/jquery.unobtrusive-ajax.min.js"></script>
<script>
function failed() {
}
</script>
}
}
控制器
public class SubmissionController : Controller
{
public IActionResult Create()
{
return View();
}
}
对于您的错误,我认为您可以检查URL'/ Submission / Create'是否存在。接下来,您可以检查是否有一些中间件阻止访问该URL。