繁体   English   中英

如何获取c#中的网站根路径?

[英]how to get website root path in c#?

在c#代码中,我需要为一张图片写src。 有谁知道如何在 c# 中获取网站根路径? 我的文件夹结构是 UI/Image 我发现当我使用

string rootpath=Page.Request.ApplicationPath;

如果在调试 model 中运行应用程序,它会工作。 但是如果直接输入url 运行它,它不会显示图像。 图片的属性是http://image/turnon.bmp应该是http://localhost/image/turnon.bmp

任何的想法?

一个简单的方法是使用带有~通配符的MapPath

string imagePath = MapPath("~/image/turnon.bmp");

正如Dan Csharpster在评论中所述,由于暴露MapPath方法的Server对象不能直接在类库中使用,因此命令应该是

string imagePath = HttpContext.Current.Server.MapPath("~/image/turnon.bmp");

如果您不在mvc / web表单上下文中,请使用VirtualPathUtility: http//msdn.microsoft.com/en-AU/library/system.web.virtualpathutility.toapprelative.aspx

var siteRoot = VirtualPathUtility.ToAppRelative("~"); 

简单使用〜符号

因为〜代表你的应用程序的根。

所以yourimage url将是

<img    src='<%= Server.MapPath("~/images/1.jpg") '  />

我使用ASP.NET MVC2时遇到了同样的问题。 你可以用这个:

ResolveClientUrl("~/Content/Icons/loading1.gif")
or  Url.Resolve()

这是虚拟路径的根目录,而不是服务器上网站的物理目录在 c# MVC 5 controller 这对我有用。

string siteRoot = System.Web.VirtualPathUtility.ToAbsolute("~");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM