C# 获取自定义属性的回发值

C# 获取自定义属性的回发值,c#,asp.net,C#,Asp.net,所以,我有一个代码: protected override void Render(System.Web.UI.HtmlTextWriter writer) { writer.AddAttribute("data-value", "{ \"test\": 3 }"); base.Render(writer); } 我正在使用一个名为DataField的新类,它继承了HiddenField。这样做的全部目标是能够发送一个JSON对象,从客户机修改它,并将其发送回服务器。因此,使用jQue

所以,我有一个代码:

protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
  writer.AddAttribute("data-value", "{ \"test\": 3 }");
  base.Render(writer);
}
我正在使用一个名为DataField的新类,它继承了HiddenField。这样做的全部目标是能够发送一个JSON对象,从客户机修改它,并将其发送回服务器。因此,使用jQuery:

var data = $('#DataField').data('value');
data.test = 1;
$('#DataField').attr('data-value',JSON.stringify(data));
现在,从这里,我如何从那里的服务器获取
数据值
属性postedback?我知道整个页面都被发回了,所以,它应该在某个地方,不是吗?
重写
LoadPostData
没有帮助,因为其中包含的属性是
而没有其他内容。

我知道整个页面都被发回了,所以,它应该在某个地方,不是吗

没有。“整个页面”不会发布到服务器。表单值将发布到服务器。为了让服务器端代码(数据字段的实例)接收一个值,需要将其设置为该
input type=“hidden”
的值<代码>数据-*
属性在客户端使用,它们不会作为表单的一部分发布到服务器

所以当你这样做的时候:

$('#DataField').attr('data-value',JSON.stringify(data));
您还需要执行以下操作:

$('#DataField').val(JSON.stringify(data));
这将
数据的JSON编码字符串设置为
输入类型=“hidden”
的值,该值将发回服务器,并可在以下位置获得:

SomeDataField.Value

那么您正在将JSON保存在数据属性中?:/您是否考虑过为JSON对象上的每个字段都设置一个数据属性?啊,太酷了!我最终采用了你的想法。将服务器发送的数据保存在
数据值
中,修改数据时,通过
属性将其发送回服务器。非常感谢D