所以我一直在寻找一个好的解决方案,但没有找到任何有用的东西。基本上我想做的是在.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,但我真的不知道从哪里开始。
如果有人可以帮助我,或者这个问题之前已经在这里得到解答,我只是忽略了它,所以你可以把我联系到那里,我会很感激。
提前感谢!
答案 0 :(得分:2)
您不能在ASP.NET WebForms中使用<form>
标记,因为已经存在<form runat="server">
并且无法嵌套HTML表单。所以这里有两个不同的任务要完成:
因此,让我们从第一个开始解决这两个单独的任务。假设您有一个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
:
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);
}
}
}