当我们可以使用另一个不可见的元素(如标签或文本框)时,在ASP.NET中使用隐藏字段有什么好处?
答案 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中的隐藏字段是出于可读性原因最好的选择。