2012-03-30 34 views
1

行之有效所以基本上,我有一个div是RUNAT = “服务器”jQuery.html()不与Asp.Net的innerHTML

<div id="results" runat="server" class="results"></div> 

现在,我添加HTML到这个使用jQuery。

$('.results').html('Some crazy data'); 

然而,当我试图访问数据在这个div使用C#,它说的DIV没有内容。

string myResults = results.innerHtml; 

myResults为空。

有人可以帮我吗?我从来没有见过这种行为。

非常感谢!

+1

应该工作...你确定你正在运行的数据文档准备好时的代码? – xandercoded 2012-03-30 17:31:37

+1

由于DIV不会发布到服务器,因此无法工作。如果你想把这些数据提供给服务器,把它复制到一个表单控件(比如说隐藏的输入)。 – 2012-03-30 17:36:43

+2

这是因为JavaScript运行客户端,而C#代码运行在服务器端。 div的内容(内部html)不会发布回服务器,因此您的C#代码无法访问它。 – 2012-03-30 17:39:45

回答

1

您可能正在寻找这样的事情...

<div id="results" runat="server" class="results"></div> 
<input type="hidden" id="hiddenResults" runat="server" class="hiddenResults" /> 

$('.results').html('Some crazy data'); 
$('.hiddenResults').val('Some crazy data'); 

现在,您可以访问服务器

string myResults = hiddenResults.Value; 
+0

它应该是hiddenResults.Value – 2012-04-02 17:07:39

1

而不是混合jQuery和Javascript。尝试

var myResults = $(".results").html(); 

只是为了验证一切是正确的,看看你的results定义如下

var results = document.getElementById("results"); 
var myResults = results.innerHtml; 

如果你想的results值到达服务器,这是不可能的通过jQuery或Javascript,除非发送一个AJAX请求。

+1

但是,没有理由让你的代码不工作,除非'results'指向null – Starx 2012-03-30 17:34:40

+1

'string myResults'没有办法是javascript代码... – 2012-03-30 17:37:12

+1

OP正在访问服务器上的数据而不是客户端上的数据。 – 2012-03-30 17:37:23

4

这行看起来像C#:

string myResults = results.innerHtml; 

想必你想访问你的服务器侧的 DIV在C#。发生这种情况之前 html被发送到浏览器。这意味着,这完全不起作用,因为您在浏览器中设置了客户端的值(在html已经发送之后)

+0

你是对的,但有没有解决这个问题? – 2012-03-30 18:13:41

+0

@唔,是的,当然,但不清楚你想做什么。 1)服务器生成HTML并将其发送到浏览器2)浏览器运行JavaScript并将div设置为包含“一些疯狂的数据”3)您想要使用该数据...何时?哪里?为什么?请详细说明你的用例,我们可以推荐一种方法(可能是AJAX)。 – 2012-03-30 18:16:16