2013-04-06 30 views
0

我对MVC很陌生,试图攻击虚拟路径提供者,并在屏幕上显示日期时间。 该路径工作正常,并由应用程序识别,但它不会显示detetime,而只是显示字符串“Time is:@ DateTime.Now”。但如果我直接返回虚拟文件,它会显示时间curectly。从虚拟文件中的字符串实现虚拟路径提供和显示日期时间

下面的代码获取虚拟文件:

public override VirtualFile GetFile(string virtualPath) 
    { 
     //if (virtualPath.StartsWith("/test") || virtualPath.StartsWith("~/test")) 
      return new StringVirtualFile(virtualPath); 

     //return base.GetFile(virtualPath); 
    } 

正如我提到的,如果我注释掉一些上面的代码,你可以看到它会正确显示时间。

代码虚拟文件:

public class StringVirtualFile : System.Web.Hosting.VirtualFile 
    { 
     public StringVirtualFile(string path) 
      : base(path) 
     { 
     } 
     public override System.IO.Stream Open() 
     { 
      return new MemoryStream(Encoding.UTF8.GetBytes("Time is: @DateTime.Now")); 
     } 
    } 

任何建议将不胜感激。

回答