0

我正在使用这样的方法来获取我的应用程序的 URL 路径:

string strPathAndQuery = HttpContext.Request.Url.PathAndQuery;
string strUrl = HttpContext.Request.Url.AbsoluteUri.Replace(strPathAndQuery, "/");

这应该是指向当前 URL 的路径。

问题是,我的实时服务器将应用程序作为 IIS 服务器内的应用程序(文件夹)运行。因此,在测试 a 时,我得到一个 URL,例如:

http://localhost/Survey/Create

我得到了:

http://testurl.com/Survey/Create

当我需要实时服务器时:

http://testurl.com/SurveyApp/Survey/Create

SurveyApp 是在 IIS 中存储应用程序的文件夹。有没有一种方法可以获取控制器所在位置的 URL,而不管物理位置如何?

4

3 回答 3

1

出于这个原因,MVC 有方法,例如 Url.Content。当您使用“~/Survey/Query”之类的应用程序目录相对路径时,这些将解析当前 url。您还可以使用 Html.ActionLink 或 Url.Action 之类的方法来获取特定操作方法的 url。这些将根据您的正确路径进行调整。

您能否更具体地说明您为什么要尝试获取路径?

于 2012-07-30T16:55:50.957 回答
0

您是否尝试在相对 URI 前添加 ~ 符号。例如,要链接/Survey/Query使用~/Survey/Query

编辑:

怎么样HttpContext.Current.Request.ApplicationPath

于 2012-07-30T16:49:27.387 回答
0

Url.Content 是您想要的。就像是:

string url = Url.Content("Query", "Survey");

第一个参数是动作,第二个是控制器。 http://msdn.microsoft.com/en-us/library/dd492758

您还可以使用很多重载。

于 2012-07-30T17:15:57.973 回答