阅读asp.net mvc中的html页面

leo*_*ora 3 asp.net migration asp.net-mvc asp-classic

我正在移植asp的网站.

我有一个页面,我无法弄清楚如何迁移它.

该页面是动态的,因为它读取其他html页面并将内容粘贴到主"容器"页面中.在asp页面的中间,它有如下部分

<%
Dim fso1, f11, ts1, s1  
Const ForReading1 = 1  
Set fso1 = CreateObject("Scripting.FileSystemObject")   
Set ts1 = fso1.OpenTextFile("" & Server.MapPath("newsletters/welcome.html") & "",     ForReading)  
s1 = ts1.ReadAll  
Response.Write s1  
ts1.Close  
set fso1 = nothing  
set f11 = nothing  
set ts1 = nothing  
set s1 = nothing  
%>  
Run Code Online (Sandbox Code Playgroud)

ASP.net MVC中的任何建议,以便在其他html页面中阅读并将其粘贴到页面视图中.

tva*_*son 6

我假设这些是HTML片段,而不是整页.您可以将它们转换为部分视图 - 非常简单,您只需添加正确的页面指令并重命名为.ascx.然后,您将使用Html.RenderPartial在主视图中包含部分.另一种方法是创建自己的HtmlHelper扩展,其工作方式与RenderPartial类似,但只是读取命名文件并将其写入响应,就像您当前所做的那样.

EX1:

 <% Html.RenderPartial( "welcome.ascx" ); %>
Run Code Online (Sandbox Code Playgroud)

EX2:

 <% Html.RenderHtml(  Server.MapPath( "newletters/welcome.html" ) ); %>
Run Code Online (Sandbox Code Playgroud)

请注意,在第一种情况下,视图文件需要位于Views目录中.在第二种情况下,您可以从工作进程具有读访问权限的任何位置引用该文件.您需要自己创建第二种方法.也许类似于:

 public static class MyHtmlHelperExtensions
 {
      public static void RenderHtml( this HtmlHelper helper, string path )
      {
           var reader = new StreamReader( path );
           var contents = reader.ReadToEnd();
           helper.ViewContext.HttpContext.Response.Write( contents );
      }
  }
Run Code Online (Sandbox Code Playgroud)

请注意,您必须添加错误处理.