Javascript 我可以通过ajax访问位于不同位置的同名控制器吗?
我在两个不同的位置有两个名为Javascript 我可以通过ajax访问位于不同位置的同名控制器吗?,javascript,c#,jquery,ajax,asp.net-mvc,Javascript,C#,Jquery,Ajax,Asp.net Mvc,我在两个不同的位置有两个名为CommonController.cs的MVC控制器。以下是相对于根的两条路径: /Controllers/CommonController.cs /CDS/Controllers/CommonController.cs 当我尝试对第一个公共控制器进行AJAX调用时,出现了一个问题。ajax调用中的url如下所示: $.ajax({ cache: false, method: 'GET', dat
CommonController.cs
的MVC控制器。以下是相对于根的两条路径:
/Controllers/CommonController.cs
/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 }
);
}
}
您可以在
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 }
);
}
}
改名会让你的生活变得更轻松。如果失败,请尝试修改路由设置,为其中一个控制器分配不同的URL。我建议您将第二个控制器放置在一个区域中。然后,您可以更改路由映射以使其工作。重命名它或配置路由以使路由名称不同。默认情况下,url将是
controllerName/actionName/parameters
,我不知道为什么url中有Controllers/Common
,也许最好也提供路由配置以获得更好的答案。@很抱歉,这是一个未删除的测试错误。已更新以匹配当前的内容running@Ian目前,我们正在采用最简单的方法,即重命名控制器。我很好奇,是否有一种方法可以通过纯JavaScript解决方案来实现这一点。通过重命名,您的生活会变得更加轻松。如果失败,请尝试修改路由设置,为其中一个控制器分配不同的URL。我建议您将第二个控制器放置在一个区域中。然后,您可以更改路由映射以使其工作。重命名它或配置路由以使路由名称不同。默认情况下,url将是controllerName/actionName/parameters
,我不知道为什么url中有Controllers/Common
,也许最好也提供路由配置以获得更好的答案。@很抱歉,这是一个未删除的测试错误。已更新以匹配当前的内容running@Ian目前,我们正在采用最简单的方法,即重命名控制器。我很好奇是否有一种方法可以通过纯JavaScript解决方案来实现这一点。