【发布时间】:2013-12-26 09:44:00
【问题描述】:
我目前有这样的事情:
<input type="hidden" value="123" name="foo_1"/>
<input type="hidden" value="123" name="foo_2"/>
<input type="hidden" value="123" name="bar_2"/>
我只需要键以foo开头的表单值:
foreach (string key in Request.Form.Cast<string>().Where(key =>
key.StartsWith("foo_")))
{
//get value (123) + the ending number from the string (1 and 2 in this case)
}
我不喜欢拆分字符串,也不喜欢过滤以某些东西开头的键。我想一定有一种“更漂亮”的方式来做到这一点?也许像
<input type="hidden" value="123" name="[foo][1]"/>
【问题讨论】:
-
不发布禁用的输入,但这需要一个完整的迭代,无论是在生成表单时(服务器端),还是在发布之前(客户端)。
-
输入未被禁用,它们被隐藏;显然是张贴的。
-
隐藏!= 禁用。所以他们应该被张贴。 ASP.NET 没有对象映射系统,因此您必须遍历表单元素。然而,C# MVC 可以将元素映射到对象,这可能是您正在寻找的,但是,您必须在 MVC 模型中构建整个站点才能实现这一点。
-
@Kami 好的。这是您可能已经知道的网络表单。应该在问题中提到它。
-
嘿,我不是说它们没有隐藏。我只是建议,如果您将它们设置为
disabled,则不会发布。
标签: c# html asp.net forms webforms