C# Jquery Ajax MVC控制器URL问题

C# Jquery Ajax MVC控制器URL问题,c#,jquery,asp.net-mvc,routes,C#,Jquery,Asp.net Mvc,Routes,我有一个jquery代码,可以打开一个对话框。此对话框是一个局部视图,根据jquery Ajax调用的响应呈现“http://test.com/ControllerA/ViewDetails”。Ajax调用代码如下所示 $.ajax({ url: "ViewDetails", type: "GET", dataType: "html", 对话框中有一个按钮,该按钮必须进行另一个jQueryAjax调用(这与另一个控制器和操作相反)。Ajax代码如下所示 $.ajax({

我有一个jquery代码,可以打开一个对话框。此对话框是一个局部视图,根据jquery Ajax调用的响应呈现“
http://test.com/ControllerA/ViewDetails
”。Ajax调用代码如下所示

$.ajax({
    url: "ViewDetails",
    type: "GET",
    dataType: "html",
对话框中有一个按钮,该按钮必须进行另一个jQueryAjax调用(这与另一个控制器和操作相反)。Ajax代码如下所示

$.ajax({
    url: "ControllerB/Search",
    type: "GET",
    dataType: "html",
上述ajax调用无法找到搜索操作,因为URL将更改为
http://test.com/ContollerA/ControllerB/Search

我觉得这与路由配置有关。但我需要你们大家给我指路

$.ajax({
    url: "@Url.Action("ViewDetails", "ControllerA")", 
    type: "GET", 
    dataType: "html",


通过这种方式,您可以使用路由表,而不是随意生成URL,最好的方法是使用

 url: '../ControllerA/ViewDetails'

当区域性位于url中时,它对我有效

在url之前添加“~/”,即“~/ControllerB/Search”,它表示根/url的进一步路径,因此,在您的例子中,如果要将URL外部化为单独的javascript变量,请在隐藏字段中分配URL,然后在javascript文件中使用隐藏字段的值。这在同一页面中呈现的部分视图中有效。在我的例子中,我打开了一个对话框。所以我需要使用@Url.Action。
 url: '../ControllerA/ViewDetails'