Skip to main content
 首页 » 编程设计

c#之你调用的对象是空的。之控制集合

2024年01月01日38zengkefu

我是 Asp.net 和网站 build 的新手,但我是从 Webmatrix 网页开始的,实际上我的网站取得了很大进展。 但我现在陷入了一段 Razor 代码。我收到错误: 你调用的对象是空的。 排队: 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,我想遍历所有文本框并将数据插入数据库。

如有任何帮助,我们将不胜感激。

提前致谢, 迪尼斯。

请您参考如下方法:

下面的代码创建了一个包含可变数量文本字段的表单,并读取它们的内容并将其存储到列表中。

@{ 
    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> 

只需稍作改动,您就可以将文本字段值插入到表记录中。