【发布时间】:2019-02-20 22:44:53
【问题描述】:
我试图从 Ajax 调用控制器,但我得到:
加载资源失败:服务器响应状态为404()
Ajax 正在从管理视图调用管理控制器。我可以查看管理页面,但我无法从 Ajax 或任何其他方法调用 GetAll() 和 GetAllUsers()。
在启动中
app.UseMvc(routes =>
{
routes.MapRoute("areaRoute",template:"{area:exists}/{controller=Admin}/{action=Index}/{id?}");
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
在管理控制器中
namespace Project.Areas.Admin.Controllers
{
[Area("Admin")]
[Authorize(Policy = "AdminOnly")]
public class AdminController : Controller
{
public IActionResult Index()
{
return View();
}
public AdminController()
{
}
[HttpGet("GetAll/{page}")]
public IActionResult GetAll(int? page)
{
}
[HttpGet("GetAllUsers/{page}")]
public IActionResult GetAllUsers(int? page)
{
}
}
}
阿贾克斯:
@section Scripts{
@await Html.PartialAsync("_ValidationScriptsPartial")
<script>
$(function () {
$.ajax({
type: "GET",
url: "/Admin/GetAll",
traditional: true,
success: function (view) {
$("Result").html(view)
}
});
$.ajax({
type: "GET",
url: "/Admin/GetAllUsers",
traditional: true,
success: function (view) {
$("userResult").html(view)
}
});
});
</script>
}
【问题讨论】:
-
它试图访问的 url 是什么(检查浏览器控制台)并查看它是系统中请求的有效 url。
-
@Shyju 网址是localhost:44348/Admin/GetAllUsers
-
不,URL 将是 localhost:44348/admin/admin/getallusers,按照您的配置方式。区域名称是 URL 的一部分。
标签: ajax asp.net-mvc asp.net-core