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页面中阅读并将其粘贴到页面视图中.
我假设这些是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)
请注意,您必须添加错误处理.
| 归档时间: |
|
| 查看次数: |
4815 次 |
| 最近记录: |