C# ASP.NET MVC从虚拟路径获取文件
出于各种原因,在开发过程中,我偶尔希望拦截对~/MyStyle.css的请求 我要做的是使以下代码段正常工作:C# ASP.NET MVC从虚拟路径获取文件,c#,asp.net,asp.net-mvc,asp.net-mvc-2,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 2,出于各种原因,在开发过程中,我偶尔希望拦截对~/MyStyle.css的请求 我要做的是使以下代码段正常工作: string absFile = VirtualPathUtility.ToAbsolute(file); return System.IO.File.ReadAllText(absFile); 这个绝对路径对于Web服务器来说是绝对的,但它不会映射到“C:\whatever”。是否有一种等效的方法来访问文件系统?(或ReadFromVirtualPath等?)使用Server.Ma
string absFile = VirtualPathUtility.ToAbsolute(file);
return System.IO.File.ReadAllText(absFile);
这个绝对路径对于Web服务器来说是绝对的,但它不会映射到“C:\whatever”。是否有一种等效的方法来访问文件系统?(或ReadFromVirtualPath
等?)使用Server.MapPath()
获取请求的应用程序路径的文件系统路径
string absFile = Server.MapPath(file);
或
您还可以使用
VirtualPathProvider
上的OpenFile
方法获取指向您的文件的流
var stream = HostingEnvironment.VirtualPathProvider.OpenFile(file);
var text = new StreamReader(stream).ReadToEnd();
通常,这种方法更可取,因为您现在可以在稍后实现一个VirtualPathProvider
where,比如说数据库中的所有css文件
var stream = HostingEnvironment.VirtualPathProvider.OpenFile(file);
var text = new StreamReader(stream).ReadToEnd();