当前位置:编程学习 > C#/ASP.NET >>

如何把 .aspx页面转换成html页面...??

<%@ Page Language="C#" MasterPageFile="~/Admin/AdminMaster.master" AutoEventWireup="true" CodeFile="NavigateTest.aspx.cs" Inherits="menuTest" %>

<asp:Content ID="Content1" ContentPlaceHolderID="admin" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="cphAdminGezi" Runat="Server">

<%--   <script type="text/javascript" >
        function Pop() 
      {
          var result = showModalDialog('testColor1.aspx', 'subpage', 'dialogWidth:400px;dialogHeight:300px;center:yes;help:no;resizable:no;status:no');  //打开模态子窗体,并获取返回值
          if(result!=null)
          {
                document.all.<%=txtColor.ClientID %>.value = result[0].toString();  //返回值分别赋值给相关文本框
           }
           return false;
      } 
      
    </script>--%>


    <div style=" width:800px; font-size:12px;">
    
    
        <asp:DataList ID="DataList1" runat="server" 
            >
            <ItemTemplate>
              <script type="text/javascript" >
                    function Pop(obj) 
                  {
                      var result = showModalDialog('testColor1.aspx', 'subpage', 'dialogWidth:400px;dialogHeight:300px;center:yes;help:no;resizable:no;status:no');  //打开模态子窗体,并获取返回值
                      if(result!=null)
                      {

                          var dl = document.getElementById("<%=DataList1.ClientID %>");
                              var tb = document.getElementById(obj.ID); 
                            tb = result[0].toString();  //返回值分别赋值给相关文本框
                       }
                       return false;
                  } 
      
    </script>
              <table id="table1" style="width:800;">
                    <tr id="tr1">
                        <td id="td1" height=18 > 
                                    <asp:Label ID="IdLabel" runat="server" Text='<%# Eval("Id") %>' />
                            标题:<asp:TextBox ID="txtTitel" runat="server" AutoPostBack="True" Text='<%# Eval("Titel") %>'></asp:TextBox>
                                  
                            颜色:<asp:TextBox ID="txtColor" runat="server"  onblur="Pop(this);" Width="68px" Text='<%# Eval("Color") %>'></asp:TextBox>
                             
                                <asp:Button ID="btnColor" runat="server" Text="拾色" 
                                  OnClientClick="Pop(this.txtColor); "/>
                                <asp:CheckBox ID="CheckBox1" runat="server" Text="加粗"  Checked='<%# Ispan(Convert.ToInt32(Eval("IsAddthick"))) %>'/>
                               
                            链接:<asp:TextBox ID="txtUrl" runat="server" Text='<%# Eval("Url") %>'></asp:TextBox>
                             
                                <asp:Button ID="btnSave" runat="server" Text="编辑内容" 
                                 />
                            <asp:Label ID="Label1" runat="server" Text='<%# Eval("Boby") %>'></asp:Label>
                        </td>
                    </tr>
                </table>
                <br />
            </ItemTemplate>
        </asp:DataList>
        <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" 
            SelectMethod="GetNavigateAll" TypeName="BLL.NavigateTestManager">
        </asp:ObjectDataSource>
    
        <br />
        <asp:Button ID="btnSave" runat="server" Text="保存设置" onclick="btnSave_Click" />
        <asp:Button ID="btnUpdate" runat="server" Text="重置" onclick="btnUpdate_Click" />
    
    </div>
</asp:Content>


我想把上面的信息生成html。。。不知怎么做???
--------------------编程问答-------------------- 额 就是不用服务器端的控件  --------------------编程问答-------------------- 我正好也想问这种问题 先帮你顶下~

我的提问:如楼主~。。 --------------------编程问答-------------------- ...............
唉  ,类似的问题 回答的都累了!! --------------------编程问答-------------------- 你可以到百度去看看  伪静态嘛 --------------------编程问答-------------------- 用 URLRewriter组件 实现伪静态。  --------------------编程问答-------------------- 是动态的生成静态页 --------------------编程问答-------------------- URLRewriter组件 实现伪静态。


或者吧页面静态化  --------------------编程问答-------------------- 在你的网站中创建一个aspx后缀的文件,覆盖入下面内容,测试一下:
<%@ Page Language="C#" %>

<%@ Import Namespace="System.IO" %>

<script runat="server">
    protected void Button1_Click(object sender, EventArgs e)
    {
        StringWriter wr = new StringWriter();
        Server.Execute(this.TextBox1.Text, wr);     //你可以使用第三个参数传递页面的更多初始数据
        this.Label1.Text = Server.HtmlEncode(wr.ToString());
        File.WriteAllText(Server.MapPath(this.TextBox2.Text), wr.ToString());
    }
</script>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>演示取得当前网站中其它网页的源代码只需要两行代码就够了</title>
</head>
<body>
    <form id="form1" runat="server" defaultbutton="Button1">
    <div>
        请输入本网站的页面名称:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <br />
        请输入目标文件名称<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
        <br />
        <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" /><hr />
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    </div>
    </form>
</body>
</html>


你可以把你网站里的内容生成html。当然摘出其中几条语句,就可以写一个全自动地处理整站的程序。 --------------------编程问答--------------------
引用 1 楼 lovely_baby 的回复:
额 就是不用服务器端的控件


以为这种想法的人不少,对asp.net知之甚少。

如果你对页面写上一条Output指令,那么页面就会自动地把html缓存在内存中,从而比保存成html要快得多。并且,Outout灵活地可以控制何时刷新html内容。想想看,你的网站中常用的网页才有多少?占用十几兆内存就可以缓存几千个html页面。 --------------------编程问答-------------------- 我也很想知道答案。。。找了很多例子都不能用,有些生成静态页的虽然可以,但是不能根据ID或时期动态生成,,郁闷啊! --------------------编程问答-------------------- 真正使用生成html的,是那些严重顾虑asp.net服务会垮掉(运行不起来)的人,他需要部署一个没有.net的服务器,只能下载文件而不运行应用程序。

除此以外,没有必要生成html文件,使用输出缓存是最明智的。 --------------------编程问答-------------------- 哦当然,当你将整站生成html的时候,应该注意修改程序将连接改为指向html页面的链接。 --------------------编程问答-------------------- 如果你对页面写上一条Output指令,那么页面就会自动  -->  如果你对页面写上一条OutputCache指令,那么页面就会自动 --------------------编程问答-------------------- 其实生不生成html的都可以。只要别再出现"?"就OK了。比如 product.aspx?id=1 变成 product1.aspx

能给我个示例吗 各位高人 --------------------编程问答--------------------  把动态的aspx生成静态的html页面
--------------------编程问答-------------------- url重写也行,或着直接生成实际的静态html页面  --------------------编程问答-------------------- urlrewrite --------------------编程问答-------------------- 静态方法....come no  --------------------编程问答--------------------
引用 5 楼 wangxiaofeiwuqiao 的回复:
用 URLRewriter组件 实现伪静态。

这是一种  还有就是直接真正的生成静态页面 --------------------编程问答-------------------- 我的意思是  给个链接,我点击的时候就把某个页面生成静态页面

你说的那个组件在哪》? --------------------编程问答-------------------- 神啊,救救我吧...急 --------------------编程问答-------------------- 不知道还有什么办法去掉参数
如果是为了安全,你可以用隐藏域啊 --------------------编程问答-------------------- ding --------------------编程问答-------------------- 此函数放在Conn.CS基类中了
在添加新闻的代码中引用 注:工程名为Hover

if(Hover.Conn.WriteFilethis.Title.Text.ToString),this.Content.Text.ToString),this.Author.Text.ToString)))
{
Response.Write("添加成功");
}
else
{
Response.Write("生成HTML出错!");
}模


这个基类在哪???我怎么找不到 --------------------编程问答-------------------- 是不是我看错了。
运行页面?查看源代码? --------------------编程问答-------------------- WebRequest访问aspx页面,然后获取Response流,得到的就是html  

private void button1_Click(object sender, System.EventArgs e) 

  textBox1.Text=this.GetUrlValue("http://yoururl/";); 

//使用HttpWebRequest获得URL的返回值 
public string  GetUrlValue(string url) 

System.Net.WebRequest       HttpWebRequest=System.Net.WebRequest.Create(url); 
System.Net.WebResponse      HttpWebResponse =HttpWebRequest.GetResponse(); 
System.IO.StreamReader sr=new System.IO.StreamReader(HttpWebResponse.GetResponseStream(), System.Text.Encoding.GetEncoding("GB2312")); 
            return sr.ReadToEnd(); 
}   
  我要怎么做呢 --------------------编程问答-------------------- 给你一个函数,直接存成html就可以了
 /// <summary>
        /// 传入URL返回网页的html代码
        /// </summary>
        /// <param name="Url">URL</param>
        /// <returns></returns>
        public static string getUrltoHtml(string Url)
        {
            string errorMsg = "";
            try
            {
                System.Net.WebRequest wReq = System.Net.WebRequest.Create(Url);
                // Get the response instance.
                System.Net.WebResponse wResp = wReq.GetResponse();
                // Read an HTTP-specific property
                //if (wResp.GetType() ==HttpWebResponse)
                //{
                //DateTime updated    =((System.Net.HttpWebResponse)wResp).LastModified;
                //}
                // Get the response stream.
                System.IO.Stream respStream = wResp.GetResponseStream();
                // Dim reader As StreamReader = New StreamReader(respStream)
                System.IO.StreamReader reader = new System.IO.StreamReader(respStream, System.Text.Encoding.GetEncoding("utf-8"));
                return reader.ReadToEnd();
            }
            catch (System.Exception ex)
            {
                errorMsg = ex.Message;
            }
            return "";
        }
--------------------编程问答-------------------- 是不是.net版的CMS ? --------------------编程问答-------------------- 百度搜索一下  URLRewriter --------------------编程问答-------------------- 顶
--------------------编程问答-------------------- 能不能有个具体的例子 --------------------编程问答-------------------- 就是把aspx里面的控件都转换了,如     <asp:DataList ID="DataList1" runat="server" >就直接转换成table了....明白吗?
--------------------编程问答-------------------- 自己顶一下, --------------------编程问答-------------------- 顶一下   正好需要呢 --------------------编程问答-------------------- 运行后网页另存为---html --------------------编程问答-------------------- 你 要的是不是 这个 效果  你访问的是  news.aspx?id=6   但地址栏显示的是 news-6.html  如果是的话加QQ 445955977   --------------------编程问答-------------------- http://blog.csdn.net/carryontilltomorrow/article/details/7231046
可以看一下
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,