访问POST表单数据并将其写入xml文件?

时间:2012-06-22 08:07:39

标签: c# asp.net forms post

所以我一直在寻找一个好的解决方案,但没有找到任何有用的东西。基本上我想做的是在.aspx web表单的代码隐藏中使用C#访问(post)表单数据,然后将该数据写入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编写器类 - &gt; http://msdn.microsoft.com/de-de/library/system.xml.xmlwriter(v=VS.80).aspx,但我真的不知道从哪里开始。

如果有人可以帮助我,或者这个问题之前已经在这里得到解答,我只是忽略了它,所以你可以把我联系到那里,我会很感激。

提前感谢!

1 个答案:

答案 0 :(得分:2)

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

  1. 将POST数据发送至Contact.aspx
  2. 使用Contact.aspx中的POST数据生成XML文件
  3. 因此,让我们从第一个开始解决这两个单独的任务。假设您有一个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; }
        }
    }
    

    现在我们可以继续实现在Contact.aspx

    中生成XML文件的第二项任务
    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);
            }
        }
    }