我正在使用这样的方法来获取应用程序的URL路径:
string strPathAndQuery = HttpContext.Request.Url.PathAndQuery;
string strUrl = HttpContext.Request.Url.AbsoluteUri.Replace(strPathAndQuery, "/");
这应该是当前网址的路径。
问题是,我的实时服务器将应用程序作为IIS服务器内的应用程序(文件夹)运行。所以在测试时我会得到一个像:
这样的网址http://localhost/Survey/Create
活着,我得到了:
http://testurl.com/Survey/Create
当我对实时服务器需要的是:
http://testurl.com/SurveyApp/Survey/Create
SurveyApp是将应用程序存储在IIS中的文件夹。有没有办法让我可以得到控制器所在位置的URL,无论物理位置如何?
答案 0 :(得分:1)
MVC有这方面的方法,例如Url.Content。当您使用app#dir相对路径(例如"〜/ Survey / Query")时,这些将解析当前URL。您还可以使用Html.ActionLink或Url.Action等方法获取特定操作方法的URL。这些将根据您的正确路径进行调整。
你能更具体地说明为什么要试图找到这条路吗?
答案 1 :(得分:0)
您是否尝试在相对URI前添加〜符号。例如,要关联/Survey/Query
,请使用~/Survey/Query
编辑:
HttpContext.Current.Request.ApplicationPath
怎么样?
答案 2 :(得分:0)
Url.Content就是你想要的。类似的东西:
string url = Url.Content("Query", "Survey");
第一个参数是Action,第二个是Controller。 http://msdn.microsoft.com/en-us/library/dd492758
您也可以使用相当多的重载。