通过数组将数据从HTML表单传递到$\u POST
以下是用ASP.NET Razor编写的 我有一个页面,它根据数据库查询的结果动态创建HTML表单中的行。结果集中的每一行对应于表单中的一行。每行有两个输入字段,我需要能够通过$\u POST传递通过数组将数据从HTML表单传递到$\u POST,html,asp.net,asp.net-mvc,post,razor,Html,Asp.net,Asp.net Mvc,Post,Razor,以下是用ASP.NET Razor编写的 我有一个页面,它根据数据库查询的结果动态创建HTML表单中的行。结果集中的每一行对应于表单中的一行。每行有两个输入字段,我需要能够通过$\u POST传递 foreach (var @row in list) { <li> <span style="width: 100px; display: inline-block">@row.Name</span> <input ty
foreach (var @row in list) {
<li>
<span style="width: 100px; display: inline-block">@row.Name</span>
<input type="text" name="time[]" />minutes on
<input type="text" name="date[]" />
</li>
}
但这不起作用。我一直收到“对象引用未设置为对象实例”错误的timeList。我想做的事可能吗?你知道怎么回事吗?试着把名字的方括号去掉:
foreach (var @row in list) {
<li>
<span style="width: 100px; display: inline-block">@row.Name</span>
<input type="text" name="time" />minutes on
<input type="text" name="date" />
</li>
}
foreach(列表中的var@行){
@行名称
分钟
}
循环将创建以HTML格式形成数组的重复名称,因此您可以得到所需的内容。但是,我不确定当列表中只有一个项目时,这是否有效,所以请进行测试。客户端HTML:
<form action="~/Page" method="post">
<input type="hidden" name="product_0_id" value="0" />
<input type="text" name="product_0_name" value="Prod. #1" />
<input type="hidden" name="product_1_id" value="1" />
<input type="text" name="product_1_name" value="Prod. #2" />
</form>
服务器:
string youGroupKey = "product";
Dictionary<string, string>[] values = Request.Form
.AllKeys
.Where(k => k.StartsWith(youGroupKey))
.GroupBy(k => k
.Substring(youGroupKey.Length + 1, 1),
(a, b) => {
return b
.ToDictionary(c => c
.Substring(youGroupKey.Length + 3), d => Request.Form[d]);
}
)
.ToArray();
string youGroupKey=“产品”;
Dictionary[]values=Request.Form
.所有人
.Where(k=>k.StartsWith(youGroupKey))
.GroupBy(k=>k
.子字符串(youGroupKey.Length+1,1),
(a,b)=>{
返回b
.ToDictionary(c=>c
.Substring(youGroupKey.Length+3),d=>Request.Form[d]);
}
)
.ToArray();
string youGroupKey = "product";
Dictionary<string, string>[] values = Request.Form
.AllKeys
.Where(k => k.StartsWith(youGroupKey))
.GroupBy(k => k
.Substring(youGroupKey.Length + 1, 1),
(a, b) => {
return b
.ToDictionary(c => c
.Substring(youGroupKey.Length + 3), d => Request.Form[d]);
}
)
.ToArray();