Html 隐藏输入过多是否会影响页面渲染速度?

Html 隐藏输入过多是否会影响页面渲染速度?,html,asp.net-mvc,asp.net-mvc-3,performance,Html,Asp.net Mvc,Asp.net Mvc 3,Performance,我现在需要在隐藏字段中保存一些关于控件的数据。我用MVC3来记录。我担心我会像穷人的viewstate一样使用隐藏字段。这样做,我觉得我将冒着导致页面呈现缓慢(或更慢)的风险。下面是我所说的一个例子 简而言之,页面上有很多隐藏字段会导致页面运行/呈现缓慢吗 一行的外观示例: <div> <div>1.</div> <div> Enter the measurements for the bridge legs (re

我现在需要在隐藏字段中保存一些关于控件的数据。我用MVC3来记录。我担心我会像穷人的viewstate一样使用隐藏字段。这样做,我觉得我将冒着导致页面呈现缓慢(或更慢)的风险。下面是我所说的一个例子

简而言之,页面上有很多隐藏字段会导致页面运行/呈现缓慢吗

一行的外观示例:

<div>
    <div>1.</div>
    <div>
        Enter the measurements for the bridge legs (record from left to right, top, then bottom):
        (I am one of many rows in this form.)</div>
    <div><input type="text" id="1" name="leg" /><input type="hidden" id="1" name="dataid" value="101" />
        <input type="text" id="2" name="leg" /><input type="hidden" id="2" name="dataid" value="102" />
        <input type="text" id="3" name="leg" /><input type="hidden" id="3" name="dataid" value="103" />
        <input type="text" id="4" name="leg" /><input type="hidden" id="4" name="dataid" value="104" />
        <input type="text" id="5" name="leg" /><input type="hidden" id="5" name="dataid" value="105" />
        <input type="text" id="6" name="leg" /><input type="hidden" id="6" name="dataid" value="106" />
        <input type="text" id="7" name="leg" /><input type="hidden" id="7" name="dataid" value="107" />
        <input type="text" id="8" name="leg" /><input type="hidden" id="8" name="dataid" value="108" />
        <input type="text" id="9" name="leg" /><input type="hidden" id="9" name="dataid" value="109" />
        <input type="text" id="10" name="leg" /><input type="hidden" id="10" name="dataid" value="110" /></div>
    <div><input type="submit" value="Submit" /></div>
</div>

1.
输入桥腿的测量值(从左到右、从上到下记录):
(我是此表单中许多行中的一行。)

我将得到一个有80行的页面,每行有多个控件。在这种情况下,我是过度担心还是有正当理由担心

您可以使用可视输入的自定义属性来避免这些额外的隐藏字段

<input type="text" id="1" name="leg" data-id="101" />

作为旁注,由于您说过您有多行,请确保您没有重复输入ID。

我也强烈建议使用jQuery-HTML5
data()
API

如果这些值是补充数据,则应该使用它

请听我回答这个问题

至于将其传递给控制器,您可以通过Ajax传递,如果您可以尝试的话

$.ajax({
  url : '/Controller/Action/',
  data : { param1 : 'Hello' }
});

具有相同
id
的元素是无效的HTML。我创建了I small(?)fiddle来测试它:您可能还需要在UI上多考虑一些。你有80个可见的行,每个行有10个输入控件吗?没有,每个行中有多个控件。一行可以有1个,另一行可以有2个,另一行可以有4个。取决于需要什么输入。我猜根据避免隐藏字段的建议,隐藏字段会使页面变慢。但是我如何将这些数据ID返回给控制器?现在我不使用jquery,只使用stock,即开箱即用的MVC 3。@dotnetN00b:您可以对所有输入使用一个隐藏字段,也可以使用json格式或任何其他您喜欢的格式。@dotnetN00b:另外,我想知道您如何在服务器上使用这些值。我不清楚如何设置隐藏字段的值以及使用它们的目的。我的数据库有一个表,其中包含:dataid、ctrlid、savedData、userid、enteredDate。ctrlID是文本框的id。隐藏的输入表示数据ID。还有另一个表,用于保存该行的文本和控件。此信息在控制器中加入并在视图中布局。您还可以使用包含这两个id的合成id。类似于服务器上的id=“ctrlid\u dataid”
id=“1\u 101”
您只需拆分id即可获得两个值。
$.ajax({
  url : '/Controller/Action/',
  data : { param1 : 'Hello' }
});