获取自定义属性的回发值

本文关键字:自定义属性 获取 | 更新日期: 2023-09-27 18:12:46

所以,我有一个代码:

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));

现在,从这里,我怎样才能从那里的服务器回发data-value属性?我知道整个页面都被发回了,所以,它应该在某个地方,不是吗?
覆盖LoadPostData无济于事,因为其中包含的属性是value的,没有别的。

获取自定义属性的回发值

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

不。 "整个页面"不会发布到服务器。 表单值将发布到服务器。 为了使服务器端代码(基本上是DataField的实例(接收值,则需要将其设置为该input type="hidden"的值data-*属性在客户端使用,但它们不会作为表单的一部分发布到服务器。

因此,当您执行此操作时:

$('#DataField').attr('data-value',JSON.stringify(data));

您还需要执行以下操作:

$('#DataField').val(JSON.stringify(data));

这会将 JSON 编码的 data 字符串设置为input type="hidden"的值,该值将回发到服务器并在此处提供:

SomeDataField.Value