ASP.NET隐藏字段与不可见文本框

时间:2011-12-09 14:46:07

标签: asp.net

当我们可以使用另一个不可见的元素(如标签或文本框)时,在ASP.NET中使用隐藏字段有什么好处?

4 个答案:

答案 0 :(得分:16)

隐藏字段在页面上生成<input type="hidden" />元素,无法看到,但客户端可以获取元素,设置数据并传递给服务器:

document.getElementById('<%= SomeHiddenField.ClientID %>').value = "data_pass_to_server";

回发后你可以获得价值:

var clientData = SomeHiddenField.Value; // "data_pass_to_server"

如果您使用的是不可见文本框(<asp:TextBox Visible="False" />),则html文件中不会生成任何元素。

答案 1 :(得分:6)

无论哪种方式都适用,对于文本框,请勿使用.visible="false" 使用

yourTextBox.Style.Add("display", "none")

yourTextBox.Style.Add("visibility", "hidden")

答案 2 :(得分:4)

隐藏字段在生成的HTML中呈现为输入类型=“隐藏”。作为输入,输入中的值在回发时提交给服务器,而标签不是这种情况。根据您是否希望将该值提交给服务器,您应该使用输入或标签。如果您不希望提交值,那么label是正确的解决方案,隐藏字段是错误的。

我不确定你的隐形文本框是什么意思,但是如果你试图通过CSS使它不可见,请记住输入类型对搜索引擎,机器人等具有语义含义。此外,在某些时候你的HTML可能是没有CSS或使用不同的CSS提供服务,文本框将对用户可见。否则隐藏字段和不可见文本框之间没有差异,因为它们都呈现输入。

答案 3 :(得分:1)

实际上你可以用它们中的任何一个来实现相同的功能,但是因为你想要一个“隐藏的字段”,从语义上讲,ASP.NET中的隐藏字段是出于可读性原因最好的选择。