我正在 ASP.NET MVC 应用程序中运行时构建 URL。最好的方法是什么?
url = string.Format("/controller/action/{0}/{1}/{2}/{3}/{4}", request.Id,
builds.Release, builds.Localization.Value, builds.Label, SessionId);
URL 最终用于对 Controller 操作进行 AJAX 回调。问题是,在我的部署环境中,该应用程序不是根应用程序,因此 URL 无效。
{host}\url <-- 这是我所拥有的。 {host}{applicationname}\url <-- 这就是我需要的。
所以我打算在运行时解析应用程序名称并使用它来构造 url。我怎样才能只获取应用程序名称?这是最好的方法吗?
谢谢!
最佳答案
最好的方法是使用 URL helper Action方法:
Url.Action("SomeAction", "SomeController", new {
id = request.Id,
release = builds.Release,
localization = builds.Localization.Value,
label = builds.Label,
sessionId = SessionId
});
这显然意味着您设置了正确的路由(采用id
、release
、localization
、label
和 sessionId
token ):
routes.MapRoute(
"MyRoute",
"{controller}/{action}/{id}/{release}/{localization}/{label}/{sessionId}",
new { controller = "SomeController", action = "SomeAction" }
);
备注:如果您不想出现 url 编码等问题,则在处理 url 时切勿使用字符串连接和/或 string.Format...
备注 2:UrlHelper 的实例在每个 Controller 操作、每个 View 和每个帮助器中都可以作为 Controller 的 Url 属性使用。
关于c# - 运行时 ASP.net 的 IIS 应用程序名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4380814/