【问题标题】:How to create ASPX Page Dynamically如何动态创建 ASPX 页面
【发布时间】:2011-01-22 13:16:38
【问题描述】:

我在 asp.net 页面、文本框和按钮上有两个控件,我想将新页面写入文本框,然后当我点击按钮时,我想用文本框文本创建新的 asp.net 网页。你想让我做什么?有没有一步一步的教程或你以前做过的任何代码?感谢您的回答。

确定我想要的更多细节。

文本框控件文本是“联系人”,我单击按钮控件。按钮获取文本框文本“联系人”并创建名称为“contact.aspx 及其代码页contact.cs”的新网页表单页面。就是这样。只需单击按钮即可在根目录下创建新的 Web 表单页面。

也许有一个像

这样的代码行

Page pg =new Page(); pg.create();

【问题讨论】:

  • 您只是想向用户显示文本还是想在您的项目中实际创建一个新的 ASPX 页面? (代码生成?)我猜你想要第一件事,应该开始阅读 ASP.Net 书籍或教程。

标签: asp.net dynamic


【解决方案1】:

您可以使用File.WriteAllText 将文本框的内容写入应用程序池用户有权写入的任何位置。


从您的编辑看来,您正在寻找 CMS/wiki 类型的功能。 .NET 框架中没有类似的东西。

我建议你寻找 wiki 软件。

【讨论】:

  • 我不想写文本框内容。我想创建一个新的 default.aspx 页面。文本框上下文将替换“默认”文本。
  • @Erdinç - 如果您要覆盖的文件正在使用中,则会发生异常。至于我的回答,在我看来仍然可以回答你的问题。你点击链接了吗?
  • 是的,我关注了你的链接。但我只想像 Visual Studio 一样创建 aspx 和 cs 页面。我想不会太复杂。
  • @Erdinç - 你低估了 VS 所做的工作量。你想要什么也不是很清楚 - 你的问题和你提出的问题清楚地表明你的问题没有足够的细节。您如何编辑您的问题并添加更多关于您正在尝试做的事情的详细信息?
【解决方案2】:

无需担心大代码等

您可以通过我的博客中解释的 2 个简单步骤来创建它

  1. 创建一个空白页面,然后使用文件概念复制它。将其保存为您想要的任何名称。
  2. 尝试将新建页面中的内容更改为流畅运行

请访问我的博客获取示例解决方案

Click here for Solution Post

【讨论】:

    【解决方案3】:

    您可以使用Page.ParseControl 方法。

    请注意,它不支持您对真正的 ASPX 或 ASHX 文件所做的一切,但它适用于简单的事情。此处提供了一个示例:Using Page.ParseControl to add new control from Control Tag

    【讨论】:

      【解决方案4】:

      有一种非常简单的方法可以做到这一点。原则上复制一个您的页面,您应该将页面与您想在其他页面上使用的控件一起放置。所以首先你需要using System.IO; 然后你需要这个代码

       protected void Button1_Click(object sender, EventArgs e)
      {
          try
          {
              File.Copy(Server.MapPath("") + "\\Submit.aspx", (Server.MapPath("") + "\\" + TextBox1.Text + ".aspx"));
              File.Copy(Server.MapPath("") + "\\Submit.aspx.cs", (Server.MapPath("")+ "\\" + TextBox1.Text + ".aspx.cs"));
              Response.Redirect(TextBox1.Text + ".aspx");
          }
          catch
          {
              Response.Write("<script>window.alert('This page is taken. Please change name!')</script>");
          }
      }
      

      如您所见,您正在处理的页面称为提交,您的页面的新名称称为 textbox1.text。 我希望这对您和其他任何人都有帮助。

      【讨论】:

        【解决方案5】:

        enter link description here 不久之前,我在一个网站上看到了一个合乎逻辑的问题,一个人给出的问题是这样的 “我的 Web 应用程序中有一个名为 First.aspx 的页面,在这个页面中;我有一个简单的 asp.net 按钮控件。我想要的是,在该按钮控件的单击事件上,创建(呈现)一个可以在新窗口或选项卡中打开的新动态“页面”” . 这里我们给出一个例子来在运行时创建一个新的 .aspx 页面。我们还提供了提供页面名称的选项。用户可以随心所欲地给予。和谷歌博客一样,我们在运行时创建新页面。新页面不在网站中,这个页面创建需要在运行时创建,并且需要是动态的。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-01-16
          • 2014-01-29
          • 1970-01-01
          • 1970-01-01
          • 2016-12-20
          • 1970-01-01
          • 2021-12-17
          • 2018-08-23
          相关资源
          最近更新 更多