【问题标题】:Ajax calling Area ControllerAjax 调用区域控制器
【发布时间】: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。
  • 不,URL 将是 localhost:44348/admin/admin/getallusers,按照您的配置方式。区域名称是 URL 的一部分。

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


【解决方案1】:

在您需要用户的网址中 /{areaName}/{controllerName}/{ActionMethod}

 $.ajax({
            type: "GET",
            url: "/Admin/Admin/GetAllUsers",
            traditional: true,
            success: function (view) {
                $("userResult").html(view)
            }
        });

【讨论】:

    猜你喜欢
    • 2012-10-06
    • 2012-01-19
    • 1970-01-01
    • 2018-04-19
    • 2021-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-17
    相关资源
    最近更新 更多