You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#从表单拼接字符串提取指定元素并入库问题求助

问题解决:从Request.Form提取指定内容并按规则处理

场景说明

我用以下C#代码从Request.Form中提取包含"ddl"的项并拼接成字符串:

List<string> value1 = new List<string>();
foreach (string item in Request.Form)
{
    if (item.Contains("ddl"))
    {
        value1.Add(Request.Form[item]);
    }
}
ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('value1:\n" +
    string.Join(",", value1) + "');", true);

执行后输出的字符串为:

Dispatching System,proposal,to be sent,main,2022-006,related,2022-017,related

现在需要从该字符串的第5个元素开始提取后续内容(即2022-006,related,2022-017,related),并将每两个元素作为一行存入数据库,对应表格如下:

tq
2022-006related
2022-017related

期望输出格式为:

2022-006 
related 
2022-017 
related

错误代码问题

我当前编写的代码输出为空,代码如下:

List<string> value1 = new List<string>();
foreach (string item in Request.Form)
{
    if (item.Contains("ddl"))
    {
        value1.Add(Request.Form[item]);
        List<string> value2 = item.Split(',').ToList();

        for (int i = 4; i < value2.Count; i++)
        {
            //Insert into db
            Response.Write(value2[i] + "<br />" + value2[i + 1] + "<br /><br />");
            i++;
        }
    }
}

问题核心:循环中错误地对表单字段名item进行拆分,而非对拼接后的完整目标字符串拆分,导致无法获取所需内容。

解决方案代码

List<string> value1 = new List<string>(); 

foreach (string item in Request.Form)
{
    if (item.Contains("ddl"))
    {
        value1.Add(Request.Form[item]);
    }
}

var requestDLL = string.Join(",", value1);
var value2 = requestDLL.Split(',');

for (int i = 4; i < value2.Length; i++)
{
    //Insert into db
    Response.Write(value2[i] + "<br />" + value2[i + 1] + "<br /><br />");
    i++;
}

正确输出

2022-006 
related 
2022-017 
related

内容的提问来源于stack exchange,提问作者George A. Custer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 20:40:35