2

私は Asp.net とサイト構築は初めてですが、Webmatrix Web ページから始めて、実際に自分の Web サイトで非常に進歩しています。しかし、私は今かみそりのコードで立ち往生しています。エラーが表示されます: オブジェクト参照がオブジェクトのインスタンスに設定されていません。行内:foreach(Page.Controlsのコントロールc1)

@{
    var db = Database.Open("DOM Coins");
    var codigo_campo_ID_unico=0;
    var valor_BC=0;


    if(IsPost){

        foreach(Control c1 in Page.Controls){
            foreach(Control c in c1.Controls){
            if (c.GetType().ToString() == "System.Web.UI.WebControls.TextBox"){
                if (c.ID=="BC_8"){
                   if (c.ID.Substring(0,2)=="BC"){
                      codigo_campo_ID_unico=int.Parse(c.ID.Substring(3,c.ID.Length-3));
                      valor_BC=int.Parse(Request[c.ID]);


                       db.Execute("UPDATE Coleccao SET Quantidade_BC=@valor_BC WHERE Id=@codigo_campo_ID_unico");
                   }
                }
            }
            }
        }
    }

}

私がこれをやりたい理由は、それぞれ異なる ID を持つテキストボックスを動的に作成していて、それらすべてを繰り返し処理してデータを DB に挿入したいからです。

どんな助けでも感謝します。

前もってありがとう、ディニス。

4

2 に答える 2

0

MVC ではなく、asp.net Web ページを使用しているように見えますが、正しいですか? レンダリングしたいもの:

<input type="text" id="xxxx" />

マークアップとして、要素を直接追加しないでください。次に、この上で、フォーム コレクションをクエリして、入力された ID の応答を確認します。

@{
   var ids = Request.Form.Keys.Where(i => i.StartsWith("BC"));
   //can process values here and store in dictionary, or process at render time
}

//Rerender textboxes - would have to base on ID's posted, or query again from DB
于 2012-10-02T14:40:26.573 に答える
0

次のコードは、可変数のテキスト フィールドを持つフォームを作成し、その内容を読み取り、リストに保存します。

@{
    var num = 3; // number of text fields to create
    List<string> nText = new List<string>();
    if (IsPost)
    {
        for (int i = 0; i < num; i++)
        {
            var name = "txt" + i.ToString();
            nText.Add(Request.Form[name]);
        }
    }
}

<!DOCTYPE html>

<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title></title>
    </head>
    <body>
        <form method="post">
            @for (int i = 0; i < num; i++)
            {
                var name = "txt" + i.ToString();
                <p>@name
                <input type="text" name="@name" />
                </p>
            }
            <input type="submit" />
        </form>
    </body>
</html>

少し変更すると、テキスト フィールドの値をテーブル レコードに挿入できます。

于 2012-10-03T16:28:44.783 に答える