2

所以我一直在到处寻找一个好的解决方案,但没有发现任何有用的东西。所以基本上我想要做的是在 .aspx Web 表单的代码隐藏中使用 C# 访问(发布)表单数据,然后将该数据写入 xml(当然还创建 xml)。

假设我有这样的事情:

<asp:Content runat="server" ContentPlaceHolderID="pageContent">

    <form id="form1" method="post" name="contact" action="contact.aspx">
       (...)
       <input type="button" value="Send" id="submit"
    </form>

</asp:Content>

现在我想表格里面的内容并不重要。

我找到了这个 xml writer class --> http://msdn.microsoft.com/de-de/library/system.xml.xmlwriter(v=VS.80).aspx,但我真的不知道去哪里开始。

如果有人可以帮助我,或者这个问题之前已经在这里回答过,我只是忽略了它,所以你可以在那里链接我,我将不胜感激。

提前致谢!

4

1 回答 1

2

您不能<form>在 ASP.NET WebForms 中使用该标记,因为已经有一个<form runat="server">并且 HTML 表单不能嵌套。所以在这里你有两个不同的任务要完成:

  1. 将 POST 数据发送到 Contact.aspx
  2. 使用 Contact.aspx 中的 POST 数据生成 XML 文件

因此,让我们从第一个任务开始处理这两个单独的任务。假设您有一个 Default.aspx Web 表单,用户将在其中输入一些输入数据:

<div>
    First name: <asp:TextBox ID="EdtFirstName" runat="server" />
</div>
<div>
    Last name: <asp:TextBox ID="EdtLastName" runat="server" />
</div>

<asp:LinkButton ID="BtnSubmit" runat="server" PostBackUrl="Contact.aspx" Text="Generate XML" />

并且在您后面的代码中将公开 2 个值:

public partial class _Default : System.Web.UI.Page
{
    public string FirstName
    {
        get { return EdtFirstName.Text; }
    }

    public string LastName
    {
        get { return EdtLastName.Text; }
    }
}

现在我们可以继续执行在内部生成 XML 文件的第二个任务Contact.aspx

public partial class Contact : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        var page = (Page.PreviousPage as _Default);
        if (page != null)
        {
            var xml = new XDocument(
                new XElement(
                    "user",
                    new XElement("firstName", page.FirstName),
                    new XElement("lastName", page.LastName)
                )    
            );
            var file = Server.MapPath("~/test.xml");
            xml.Save(file);
        }
    }
}
于 2012-06-22T08:28:11.013 回答