我试图在 Ajax 调用中调用不同的 Controller 方法。我查看了不同的帖子来寻找解决方案,但因为我不完全了解他们的解决方案是什么(链接在底部)。我正在从我的家庭 Controller 调用我的 ajax 调用,试图在我的生产 Controller 中调用一个方法。
“请求网址:http://localhost.59223/Home/Production/CreateNewProductionGoal”
这是我遇到的错误。
我已尝试按照在线建议将 URL 更改为 .../Production/CreateNewProductionGoal 和 ~/Production/CreateNewProductionGoal
。这些实现都不起作用,因为我遇到了 404 错误,找不到页面。
其中一个链接的解决方案提到使用 loc var key ,我对此并不熟悉。
另一个人建议使用一个按钮,这在我的情况下不是一个选项。
$.ajax({
type: 'post',
url: "Production/CreateNewProductionGoal",
dataType: "json",
data: data, //Creating a ProductionGoalViewModel to pass into the CreateNewProductionGoal method
success: function (data) {
//$('#Dashboard').load("/Home/UpdateView/" + selectProductionLine);
}
});
Ajax call to different controller
How to make ajax calls to different MVC controllers
为了澄清,我正在寻找有关如何从一个 MVC Controller
到另一个 Controller 的 Ajax 调用的逐步说明。
谢谢!
最佳答案
您应该在您的 url 中包含一个前导 /
以调用正确的 URL:
$.ajax({
...
url: "/Production/CreateNewProductionGoal",
...
});
这样,请求将转至 http://localhost.59223/Production/CreateNewProductionGoal
。
不同的路径,如果您当前查看 http://example.com/Home/
:
your/path
:这会将当前路径作为起始路径,即将其添加到那里,结果是http://example.com/Home/your/路径
。~/your/path
:可用于asp.net服务器代码,例如 Razor 指示您网站的根目录,仅当它呈现时。浏览器不将~/
视为特殊标记,导致http://example.com/Home/~/your/path
或http://example .com/your/path
,渲染时.../your/path
:没什么特别的,结果是http://example.com/Home/.../your/path
../your/path
:上一级目录,结果是http://example.com/your/path
。但这会导致嵌套目录的路径不同。/your/path
:绝对路径,将始终导致http://example.com/your/path
,独立于嵌套目录。
有关绝对和相对 URL 的更多信息,请参阅 Absolute vs relative URLs
关于javascript - Ajax 调用不同的 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57274065/