Asp.net 使用response.WriteFile而不是用户控件
我有一个大的html文件,我想分开。我已经设法将它分开,并将每个部分放在一个htm文件中。因此,我的结构现在看起来像: 请注意,文件夹中的所有文件仅限于Default.aspx页面。我喜欢把我的代码分成几个部分;我发现这样编程比较容易 不管怎样,为什么当我这样做:Asp.net 使用response.WriteFile而不是用户控件,asp.net,Asp.net,我有一个大的html文件,我想分开。我已经设法将它分开,并将每个部分放在一个htm文件中。因此,我的结构现在看起来像: 请注意,文件夹中的所有文件仅限于Default.aspx页面。我喜欢把我的代码分成几个部分;我发现这样编程比较容易 不管怎样,为什么当我这样做: <% Response.WriteFile("_Menu.htm"); %> 这会创建一个不同的输出,如果我要去哪里_Menu.htm复制整个内容并粘贴到那里?
<%
Response.WriteFile("_Menu.htm");
%>
这会创建一个不同的输出,如果我要去哪里_Menu.htm复制整个内容并粘贴到那里?我知道我可以为每个文件创建一个用户控件。但如果我这样做,我将不得不在每个文件的页面根创建一个页面指令,另外我只需要放置静态内容,而不需要调用aspx页面。为什么Response.WriteFile包含文件中没有的内容。例如,每当我有一个段落时,它都会加上“.”标记
编辑
当我计划重用html时,我使用用户控件。在这种情况下,我只是将一个页面拆分为几个页面。我希望将每个块的内容放在一个单独的文件中
编辑2
做:
<%
//Response.WriteFile("_Menu.htm");
Response.Write(System.IO.File.ReadAllText(@"A:\Users\Antonio\Dropbox\VisualStudio Projects\Websites\Boat\Boat\MasterPages\User\_Menu.htm"));
%>
很好。为什么Response.WriteFile在开头包含“(段落)”?创建您的响应。写入方法: 创建以下全局扩展方法,以便您的所有页面都可以访问它:
using System.Web.UI;
public static class StaticExtensionMethods
{
public static void Include(this System.Web.UI.Page Page, string path)
{
Page.Response.Write(System.IO.File.ReadAllText(Page.Server.MapPath(path)));
}
}
然后做:
<%
this.Include("_Menu.htm");
%>
作为一个可能对您有所帮助的建议,我建议您不要制作所有相关的html文件,而应该将它们转换为web用户控件。它们可以重复使用,并且不需要输出您的文件。是的,我来自php背景,我使用了大量ajax。但是,是的,您尝试使用asp作为p是正确的惠普给了我一段艰难的时光