我可以通过 ajax 访问不同位置的同名控制器吗?

Can I access a controller with same name in a different location via ajax?

本文关键字:控制器 位置 ajax 访问 可以通过      更新时间:2023-09-26

我在两个不同的位置有 2 个名为 CommonController.cs 的 MVC 控制器。以下是相对于根的两条路径:

  1. /Controllers/CommonController.cs
  2. /CDS/Controllers/CommonController.cs

当我尝试对第一个公共控制器进行AJAX调用时,这会带来一个问题。ajax 调用中的 url 如下所示:

$.ajax({
            cache: false,
            method: 'GET',
            dataType: 'json',
            url: ROOT_URL + 'Common/GetCountries',
            data: { },
//more code

有没有办法访问此控制器并仍然将相同的命名控制器保留在不同的位置,或者我是否必须重命名其中一个控制器?

您可以在类RouteConfig.cs手动添加控制器路径。如果您声明两个控制器,则很容易找到。

您可以按如下方式对RouteConfig.cs进行一些更改。我希望它可能对你有所帮助。

public class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
        routes.MapRoute(
            name: "Country",
            url: "/Controllers/Index",
            defaults: new { controller = "CommonController", action = "Index", id = UrlParameter.Optional }
        );
        routes.MapRoute(
            name: "State",
            url: "/CDS/Controllers/Details/5",
            defaults: new { controller = "CommonController", action = "Details", id = UrlParameter.Optional }
        );
    }
}