我是 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>
只需稍作改动,您就可以将文本字段值插入到表记录中。
关于c# - 你调用的对象是空的。 - 控制集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12691543/