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

时间:2016-07-15 13:53:40

标签: javascript c# jquery ajax asp.net-mvc

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

  1. /Controllers/CommonController.cs
  2. /CDS/Controllers/CommonController.cs
  3. 当我尝试对第一个公共控制器进行AJAX调用时,这会出现问题。 ajax调用中的url如下所示:

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

    有没有办法访问这个控制器并仍然将同一个命名控制器保存在不同的位置,还是我必须重命名其中一个控制器?

1 个答案:

答案 0 :(得分:3)

您可以在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 }
        );
    }
}