我在 IIS 中托管了一个新的 ASP.Net 核心应用程序作为另一个应用程序的子站点。在本地,一切正常。但是,在将此应用程序发布为子站点后,Ajax 发布请求会遇到错误的控制器和操作。
使用 Ajax 调用 BController 中的 BGetDetails 操作。但是该请求是针对 AController 中的 AGetDetails 操作的。
我已经尝试了很多方法来解决这个问题,但无法做到。
如果将此应用程序作为单独的域托管,一切都很好。只有在将应用程序作为另一个应用程序的子站点托管时,我才必须面对这个问题。
我附上了相同的代码。请在下面找到那些,
路由配置
app.UseMvc(routes =>
{
routes.MapRoute(
name: "yyyyyyy",
template: "Platform/GetDetails",
defaults: new { controller = "B", action = "BGetDetails" });
});
app.UseMvc(routes =>
{
routes.MapRoute(
name: "xxxxxx",
template: "{arug1}/{arug2}",
defaults: new { controller = "A", action = "AGetDetails" });
});
阿贾克斯调用:
data = { "arug1": arug1, "arug2": arug2, "arug3": arug3, "arug4": arug4, "arug5": arug5 };
$.ajax({
type: "POST",
url: "/sub-site/Platform/GetDetails",
data: data,
success: function (result) {
...
}});
控制器:
控制器-1
public class AController: Controller
{
[HttpGet]
public ActionResult AGetDetails(string arug1, string arug2)
{
...........
}
}
控制器-2
public class BController : Controller
{
[HttpPost]
public ActionResult BGetDetails(string arug1, string arug2, string arug3, string arug4, bool arug5)
{
.........
}
}
帮我解决这个问题。提前致谢,