我如何设计一个对象来表示所有HTML表单元素?

前端之家收集整理的这篇文章主要介绍了我如何设计一个对象来表示所有HTML表单元素? 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

免责声明:这是我正在做的个人项目.我不想使用现有的库,因为这会使learning more about wheels失去一些乐趣.

话虽如此,我正在研究网络蜘蛛,并且遇到了如何用单个对象表示HTML表单元素的问题.

我想做的是有一个“ HTML文档”对象,该对象包含所有表单元素的数组作为其属性之一.问题是我无法找出一种表示< input />标签以及< select />标签,因为选择标签可以具有多个子< option />标签.

有什么好方法可以同时表示< input />标签,基本上只存储名称/值对,而< select />在同一类中具有名称/值对数组的标签

到目前为止,我想到的最好的主意是对待< option /> < select />的标签标签作为单独的表单字段,类似于我将如何表示< input type =“ radio” />或< input type =“ checkbox” />.

所以我会这样:

class FormField {
    public string Name { get; set; }
    public string Value { get; set; }
    public string Type { get; set; }
}

然后,一个用于迭代的集合类将:

>集合类将是“数组数组”.对于HTML文档中的每个名称,外部数组将具有一个内部数组.
>它的索引器可以按名称获取字段.该索引将返回一个FormField对象数组.
>枚举整个文档的表单域时,每次迭代将具有一个FormField对象数组,因为它将是一个数组数组.

这是最好的解决方案,还是有一种更简单的方法来表示呢?

最佳答案
您是要表示dom结构,还是表示它们在http-post中显示的值?

具有相同名称的两个输入将导致该值被发布两次,并且读取的方式类似于您已选中复选框(具有相同名称).您是否检查过同时具有相同名称的文本框和复选框会发生什么情况?您能在产生的http-post中区别他们吗?在这种情况下,您应该使用哪种类型?

尝试过一个简单的NameValueCollection,它将允许您为每个键存储几个字符串值?

猜你在找的HTML相关文章