【问题标题】:How to get jquery cloned html object in C# propery如何在 C# 属性中获取 jquery 克隆 html 对象
【发布时间】:2014-11-13 10:59:06
【问题描述】:

我的页面中有一些 div,其中包含一些输入元素。现在我想克隆这个 div 的完整 html,以便我可以将它保存在我的数据库中,下次我可以检索克隆的 html 并再次以与保存时完全相同的方式将其呈现在另一个页面中,包括所有输入值与保存时相同。

我将 div 的 html 关闭为:

 var htmlObject= $('.mydiv').clone();

现在上面的变量 htmlObject 是对象类型。

现在在我的模型中的 c# 中,我有字符串类型的属性 Html:

public string Html { get; set; }

但是当我使用 ajax 调用将 htmlObject 发送到我的服务器时,Html 属性为空。 我的问题是属性 Html 的类型应该是什么,以便正确捕获 htmlOject 并保留其所有属性,以便下次我从 db 检索它并将其发送给客户端时,应该重新创建完全相同的 div?

【问题讨论】:

  • 如何将 htmlObject 传回服务器?
  • 还尝试按照@Jarek 的回答中的建议将htmlObject.html() 用于服务器
  • 当我使用 angular js 时,使用 angularjs 资源来发出 ajax 请求。只需在 ajax 请求中传递 htmlObject。我传递的 htmlObject 是 oject 类型。其中包含所有 dom 相关信息。
  • $.html() 不保留输入值,这就是我使用 $.clone() 的原因,否则 $.html() 的输出我可以直接绑定到服务器中的字符串属性。
  • $("input").each(function () { $(this).attr("value", $(this).val()); }); 在克隆之前添加这个。

标签: javascript c# jquery html model


【解决方案1】:

不要使用返回 DOM 对象的clone(),而是使用以下方法获取 div 的字符串内容:

var htmlString = $('.mydiv').html();

然后您可以将htmlString 直接传递给C# 字符串属性Html

编辑:要在字符串中包含输入值,请参阅include new input values when selecting from the dom using jquery

【讨论】:

  • $.html() 不保留输入元素值。这就是我使用 $.clone() 的原因。
  • 啊。 C# 无法识别 DOM 对象(至少开箱即用),您必须将 clone() 的输出转换为 Javascript 端的字符串。我添加了一个链接,指向一个有关此问题的问题,您可以使用该问题的答案。
猜你喜欢
  • 2016-08-05
  • 1970-01-01
  • 2015-02-08
  • 1970-01-01
  • 2011-05-15
  • 1970-01-01
  • 1970-01-01
  • 2011-02-04
相关资源
最近更新 更多