c# - 运行时 ASP.net 的 IIS 应用程序名称

标签 c# asp.net asp.net-mvc

我正在 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 
}); 

这显然意味着您设置了正确的路由(采用idreleaselocalizationlabelsessionId 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/

相关文章:

c# - 按钮上的文本居中

c# - nHibernate Distinct 和分页的问题

c# - LInq to SQL - 部分类 - C#

asp.net mvc路由id参数

asp.net-mvc - 如何使用 jQuery 将对象列表传递给 ASP.NET MVC 操作?

c# - 为 mvc 图像/样式/脚本助手设置默认路径/路由

c# - Mono 无法将 Type 转换为 Type A

asp.net - MVC 4 可以在.net 3.5 上运行吗?

asp.net - ASP.NET如何确定是否将请求排队?

asp.net-mvc - 使用 MVC 3 发送电子邮件