Asp.net 客户端生成的控件是否会影响ViewState?

Asp.net 客户端生成的控件是否会影响ViewState?,asp.net,vb.net,viewstate,Asp.net,Vb.net,Viewstate,我有一个页面,可以生成新文本输入,复选框,使用JavaScript选择。因此,这些控件都没有设置runat=“server” 我想知道这些控件是否在回发时发送到服务器,并成为Viewstate的一部分,以任何方式对其进行更改。简短的回答是是,通过分配 ASPX页面中动态生成的纯HTML元素将被视为元素而不是元素,因此它们不会像某些ASP.NET服务器控件那样直接影响ViewState。但是,由于它们被放置在表单标记(通常带有runat=“server”属性)中,它们的值被发布在一起,作为提交表单

我有一个页面,可以生成新文本
输入
复选框
使用JavaScript选择
。因此,这些控件都没有设置
runat=“server”


我想知道这些控件是否在回发时发送到服务器,并成为Viewstate的一部分,以任何方式对其进行更改。

简短的回答是是,通过分配

ASPX页面中动态生成的纯HTML元素将被视为元素而不是元素,因此它们不会像某些ASP.NET服务器控件那样直接影响
ViewState
。但是,由于它们被放置在
表单
标记(通常带有
runat=“server”
属性)中,它们的值被发布在一起,作为提交表单触发的回发事件阶段,表单在集合中标识为键值对(键值由文本HTML元素的name属性识别)

假设您使用JS动态生成了如下文本框:

<input name="FirstName" type="text" />
重要的是,您可以省略上面的字符串赋值,并将文本框值赋值给
ViewState

ViewState("FirstName") = Request.Form("FirstName").ToString()
请注意,只有HTML服务器控件(例如
)和ASP.NET服务器控件在代码隐藏中可以直接访问控件名,并且
ViewState
自动维护(除非
EnableViewState
属性设置为
false

附加
ViewState
参考:

相关问题:


如果js禁用了其中一个控件(asp:TextBox),并且表单在回发时发送,这会影响viewstate吗?js客户端禁用的控件肯定不会影响服务器端部分,只要它具有name/ID属性,就可以使用
Request.form
(对于HTML文本控件)检索其值或
controlID.Value
(对于HTML和ASP.NET服务器控件),并可能影响
ViewState
ViewState("FirstName") = Request.Form("FirstName").ToString()