gpt4 book ai didi

asp.net - 在 asp.net mvc 中读取 html 页面

转载 作者:行者123 更新时间:2023-12-01 11:09:54 25 4
gpt4 key购买 nike

我正在从 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
%>

有关在 ASP.net MVC 中阅读其他 html 页面并将它们粘贴到页面 View 中的最佳方式的任何建议。

最佳答案

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

示例 1:

 <% Html.RenderPartial( "welcome.ascx" ); %>

例子2:

 <% Html.RenderHtml(  Server.MapPath( "newletters/welcome.html" ) ); %>

请注意,在第一种情况下, View 文件需要位于 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 );
}
}

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

关于asp.net - 在 asp.net mvc 中读取 html 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1149969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com