如何在控制器代码中使用Url.Content("〜\ stuff\hi.jpg")?

Omu*_*Omu 20 asp.net asp.net-mvc

我需要Url.Content("~\stuff\")控制器代码的结果,

我怎么得到这个?

jim*_*lan 38

在服务代码中(即远离控制器),您可以使用:

string returnUrl = VirtualPathUtility.ToAbsolute("~/stuff/");
Run Code Online (Sandbox Code Playgroud)

mvc1-3公开Url.Content("~/stuff/");来自System.Web.Mvc中的UrlHelper,它可以很容易地在您的控制器代码中使用.

[编辑] - 在VirtualPathUtility.ToAbsolute("~/stuff/")用法上做出微妙的区分.


Dar*_*rov 9

在控制器操作中,您可以使用Url属性:

public ActionResult Index()
{
    var url = Url.Content("~/stuff/");
    ...
}
Run Code Online (Sandbox Code Playgroud)

还要注意使用/而不是\处理相对URL时的用法.


Mic*_*tum 1

获取磁盘上的物理文件路径:

Server.MapPath("~\stuff\")
Run Code Online (Sandbox Code Playgroud)

控制器还包括一个 urlHelper,可用作Url,但这可能不是您需要的。

您期望的结果是什么?

编辑:根据您对 FilePath 的请求,Url.Content("~\stuff\")应该可以吗?除非您使用非常旧的 ASP.net MVC,控制器上没有 Url 属性。