2013-04-06 58 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")); 
     } 
    } 

任何建議將不勝感激。

回答