C# TextBox自定义属性为空

C# TextBox自定义属性为空,c#,asp.net,postback,webforms,C#,Asp.net,Postback,Webforms,我正在标记中设置一个自定义属性,如下 <asp:TextBox runat="server" guid="" ID="txtlocation1" type="text" class="autocomplete short-field require" name="location1" autocomplete="off" datasource="locations" /> 我总是得到一个空字符串。。有什么想法吗? PS:但我没有在代码中设置属性。属性保留在ViewState中,因此

我正在标记中设置一个自定义属性,如下

<asp:TextBox runat="server" guid="" ID="txtlocation1" type="text" class="autocomplete short-field require" name="location1" autocomplete="off" datasource="locations" />
我总是得到一个空字符串。。有什么想法吗?
PS:但我没有在代码中设置属性。

属性保留在ViewState中,因此在您的案例中,会向ViewState添加一个空字符串。在客户机上设置属性不会有任何影响,因为只有文本(或值)属性被发回服务器。将在服务器端重新创建控件,并重新应用ViewState,使GUID属性再次成为空字符串


我想您可以将一个隐藏的表单字段设置为GUID。单击按钮时,它应该在服务器端可用,并具有正确的值。

属性保留在ViewState中,因此在您的案例中,会向ViewState添加一个空字符串。在客户机上设置属性不会有任何影响,因为只有文本(或值)属性被发回服务器。将在服务器端重新创建控件,并重新应用ViewState,使GUID属性再次成为空字符串


我想您可以将一个隐藏的表单字段设置为GUID。单击按钮时,它应该在服务器端使用正确的值。

自定义属性不会发送回服务器…您可以使用Hiddenfield控件来保存数据并使用javascript进行更改,然后在服务器上读取更新的值。

自定义属性不会发送回服务器…您可以使用Hiddenfield控件相反,为了保存数据并使用javascript对其进行更改,您将在服务器上读取更新后的值,文本框将把它无法识别的任何属性直接推送到客户端;这是IAttributeAccessor接口的一项功能。但是,它们不会被发送回服务器;文本框只会将其value属性发回服务器。使用
控件或
将它们发回服务器。然后,您可以从隐藏字段中读取更改后的值。

文本框将把它无法识别的任何属性直接推送到客户端;这是IAttributeAccessor接口的一项功能。但是,它们不会被发送回服务器;文本框只会将其value属性发回服务器。使用
控件或
将它们发回服务器。然后,您可以从隐藏字段中读取更改后的值。

如果您没有在代码中设置属性,并且在标记中指定了这样的属性:guid=“”,那么您还期望得到什么?如果您没有在代码中设置属性,并且在标记中指定了这样的属性:guid=“”,那么您还期望得到什么?
var val = txtlocation1.Attributes["guid"];