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 ライター クラスを見つけました --> http://msdn.microsoft.com/de-de/library/system.xml.xmlwriter(v=VS.80).aspx、しかし、どこに行くのか本当にわかりません始める。

誰かがそれについて私を助けることができるか、またはこの質問が以前にここで答えられていて、私が見落としていたので、そこにリンクしていただければ幸いです。

前もって感謝します!

4

1 に答える 1

2

HTML フォームはネストできない<form>ため、ASP.NET WebFormsではタグを使用できません。<form runat="server">したがって、ここでは 2 つの異なるタスクを実行する必要があります。

  1. POST データを Contact.aspx に送信する
  2. Contact.aspx の POST データを使用して XML ファイルを生成する

それでは、最初のタスクから始めて、これら 2 つの別々のタスクに取り組みましょう。ユーザーが入力データを入力する 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 ファイルを生成する 2 番目のタスクの実装に進むことができます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 に答える