我已经搜索过几个帖子,这些方法通常都能正常工作,但是...... 我在一个使用3种不同服务器(Dev,UAT和Prod)的环境中。所有3个都有不同的URL结构:
http://dev.com/myusername/applicationname (Dev)
http://uat.com/applicationname (UAT)
http://prod.com/applicationname (Prod)
我遇到的问题是,当我尝试使用下拉列表时,我遇到了正确的问题。问题是当我使用以下代码填充我的下拉列表时:
@Html.DropDownList("Owners", ViewData["Owners"] as SelectList, new { onchange = "document.location.href='/Builds/' + this.options[this.selectedIndex].value;" })
它处理事件就好了,但产生了一个URL: http://dev.com/Builds/value。我需要它http://dev.com/myusername/application/Builds/value。
关于如何实现这一目标的任何想法?
答案 0 :(得分:0)
获取基础uri然后将你的东西附加到那个:
string baseUrl = Request.Url.Scheme + "://" + Request.Url.Authority +
Request.ApplicationPath.TrimEnd('/') + "/";
请注意修剪是存在的,因为它可能会也可能不会以尾部斜杠结尾,具体取决于它的托管位置(根目录或子目录)
您也可以使用
HttpContext.Current.Server.MapPath("~/Builds/")
这可能也有效:
@HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority)@Url.Content("~/Builds/")