我有一个表单,可以使用多个值的名称(例如:<input name="name1" type="text">
,而其他输入具有相同的名称name1
)。当我想在处理程序中获取数据时,我使用方法HttpUtility.ParseQueryString()
然后将其放在var nameValue
中,因此当我想获取值时,我会nameValue["name1"]
。问题是,当我得到name1
的值时,我得到"name1_value1,name1_value2"
并将逗号作为分隔符,因此我需要将其拆分为单独获取"name1_value1""name1_value2"
,但如果{{1}实际上包含一个逗号name1_value1
然后就出现了问题。
我所做的是将(,)
转换为字符串,然后用context.Request.Params
替换所有逗号(在参数中编码为%2c
)并在我完成拆分后再次替换它们但是我是不确定这是否会正常工作,因为可能还有另一个包含;;;
答案 0 :(得分:2)
如你所说nameValue["name1"]
将以逗号加入结果,这就是你不想要的。因此,最好忘记HttpUtility.ParseQueryString()
并自己解析查询字符串。
string queryString = url.Split('?')[1];
string[] qsArray = queryString.Split('&');
var name1 = qsArray.ToList().Where(A => A.StartsWith('name1'));
现在你的价值完全分开了。