在 URL 中获取项目名称
Get Project name in URL
当我在本地开发 (.NET 6.0 - MVC) 时,我有以下基础 URL:
https://localhost:7221/<controller>
但是当我发布它时我有以下基础 URL:
https://<server name>/<application>/<controller>
我不知道如何在本地以同样的方式获取它,例如
https://localhost:7221/<application>/<controller>
如果我用类似的 URL:
调用它们,我会遇到只能在其中一种环境中工作的 AJAX 请求的问题
url: "/Ajax/..."
你的意思是在 URL 中添加项目名称?
如果是,在Program.cs
的路由中添加项目名称
app.MapControllerRoute(
name: "default",
pattern: "application/{controller=Home}/{action=Index}/{id?}");
结果:
I'm having problems with AJAX requests who will only work in one of
the environments, if I call them with a similar URL:url: "/Ajax/..."
[注意]使用ajax时也需要在url中添加项目名称。
您可以使用 Url.Action
辅助方法,它为指定的操作名称和路由值生成完全限定的 URL 操作方法。因此,在您的情况下,您可以像这样在 AJAX
url 调用中使用它:
url: '@Url.Action("ActionMethod", "ControllerName")'
注意:此方法只能在您的 .cshtml
文件中使用,在纯 .js
文件中不被接受。如果你想让你的 .js
访问这个变量,那么你需要在你的 .cshtml
文件中全局定义它,然后在你的 .js
文件中访问它。
当我在本地开发 (.NET 6.0 - MVC) 时,我有以下基础 URL:
https://localhost:7221/<controller>
但是当我发布它时我有以下基础 URL:
https://<server name>/<application>/<controller>
我不知道如何在本地以同样的方式获取它,例如
https://localhost:7221/<application>/<controller>
如果我用类似的 URL:
调用它们,我会遇到只能在其中一种环境中工作的 AJAX 请求的问题url: "/Ajax/..."
你的意思是在 URL 中添加项目名称?
如果是,在Program.cs
的路由中添加项目名称app.MapControllerRoute(
name: "default",
pattern: "application/{controller=Home}/{action=Index}/{id?}");
结果:
I'm having problems with AJAX requests who will only work in one of the environments, if I call them with a similar URL:url: "/Ajax/..."
[注意]使用ajax时也需要在url中添加项目名称。
您可以使用 Url.Action
辅助方法,它为指定的操作名称和路由值生成完全限定的 URL 操作方法。因此,在您的情况下,您可以像这样在 AJAX
url 调用中使用它:
url: '@Url.Action("ActionMethod", "ControllerName")'
注意:此方法只能在您的 .cshtml
文件中使用,在纯 .js
文件中不被接受。如果你想让你的 .js
访问这个变量,那么你需要在你的 .cshtml
文件中全局定义它,然后在你的 .js
文件中访问它。