Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET MVC从虚拟路径获取文件_C#_Asp.net_Asp.net Mvc_Asp.net Mvc 2 - Fatal编程技术网

C# ASP.NET MVC从虚拟路径获取文件

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

出于各种原因,在开发过程中,我偶尔希望拦截对~/MyStyle.css的请求

我要做的是使以下代码段正常工作:

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();