浏览器收集哪些值作为回发数据?

时间:2009-03-21 19:13:36

标签: c# asp.net ado.net

当要将页面发回服务器时,浏览器会收集每个控件的当前值并将其粘贴到一个字符串中。然后,此回发数据将通过HTTP POST发送回服务器。

Q1 - 除了控件的Text属性和SelectedIndexchanged(因此除了用户输入数据)之外,控件的其他属性/值是否也被浏览器保存为回发数据?

Q2 - 对于GridView,浏览器在回发中保存哪些值?只有那些用户选择编辑的行?

字节

3 个答案:

答案 0 :(得分:4)

帖子中会返回textareaselectinputbutton字段的值。每个值都是一个键值对,其中键是元素的name属性。

我认为我已经获得了帖子中包含数据的所有元素:

  • textarea:包含value属性,即在textarea中键入的内容。

  • select:包含所选选项的value属性。如果所选选项未指定value属性,则使用该选项的文本。

  • input type="text":包含value属性,即输入字段中输入的内容。

  • input type="password":包含value属性,即输入字段中输入的内容。

  • input type="submit":如果按钮用于发送表单,则会包含value属性,即按钮的文本。

  • input type="image":如果使用该按钮发送表单,则会在帖子中发送图像中鼠标点击的坐标。通过在元素名称中添加“.x”和“.y”来创建x和y坐标的名称。

  • input type="checkbox":如果选中该复选框,则会包含value属性。如果元素没有指定value属性,则使用值“on”。

  • input type="radio"value属性包含在每个组的所选项目中。 (组是所有具有相同名称的单选按钮。)

  • input type="file":包含所选文件的内容以及原始文件路径(或仅包含文件名,具体取决于浏览器和安全设置)。

  • input type="hidden":包含value属性。

  • button:如果按钮用于发送表单,则会包含innerText属性,即删除了任何html标记的按钮文本。

TextBox控件呈现为input type="text"input type="password"textarea,具体取决于TextMode属性。 DropDownList控件呈现为select元素。 Button控件呈现为input type="submit"CheckBox控件呈现为input type="checkbox"。等等......检查渲染的html代码,看看实际呈现的html元素是什么。

如果GridView包含任何可编辑的表单字段,或者如果它导致回发(例如,通过在列表中导航),则GridView仅包含帖子中的任何数据。在进行回发时,有一些信息存储在一对隐藏字段中,因此任何导致回发但不自行发送任何表单数据的控件(例如LinkBut​​ton)都包含有关导致回发的原因的信息。 / p>

控件也可以将数据放入ViewState中,ViewState保存在表单中的隐藏字段中。这也包含在帖子中,但它只是发送到浏览器并再次返回,而不会被浏览器更改。

答案 1 :(得分:1)

我不是asp程序员,所以我无法给出确切的答案,但我建议你使用firefox和插件Live Http Headers以及Firebug(控制台部分)。

通过此设置,您将能够看到浏览器向您的服务器发送的确切数据。

答案 2 :(得分:1)

您可能也想使用ViewState解码器。您可以在浏览器扩展中获取它们,并在网络上使用它们。 Scott Gu在此推荐一个:http://weblogs.asp.net/scottgu/archive/2003/02/16/2495.aspx。 ViewState应该告诉您需要知道的持久服务器属性。