实现virtualpath提供并从虚拟文件中的字符串显示日期时间

本文关键字:字符串 显示 时间 日期 文件 虚拟 virtualpath 实现 | 更新日期: 2023-09-27 18:07:40

我对MVC非常陌生,并试图实现虚拟路径提供程序,并在屏幕上显示日期时间。该路径工作良好,并被应用程序识别,但是它不会显示detetime,而是只显示字符串"Time is: @DateTime.Now"。但是如果我直接返回虚拟文件,它会直接显示时间。

以下代码检索虚拟文件:

  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"));
        }
    }

实现virtualpath提供并从虚拟文件中的字符串显示日期时间

"@"是用于Razor视图引擎的。要么做string。格式("Time is: {0}", DateTime.Now")或使用ASP MVC的路由、控制器和视图(你可以在这里使用"@")而不是VirtualFile

路由:

    http://www.asp.net/mvc/tutorials/older-versions/controllers-and-routing/asp-net-mvc-routing-overview-cs
  • http://dotnet.dzone.com/articles/aspnet-mvc-routing-basics