0

我正在使用 javascript 更改跨度的内容。我可以看到它已经随着视图源而改变。

当我尝试立即获取 ac# 函数中的内容时,它仍然具有旧值。

我的猜测是,asp 只是看到它发送给客户端的 html,而 javascript 正在更改 asp 看不到的客户端 html?

这是我对如何解释它的唯一猜测。这是正确的吗?

谢谢。

4

4 回答 4

3

除非您要更改的内容支持将值发布回服务器,否则您的更改将被丢弃。 <span>' 不会被 POST 到服务器。

但是,如果您更改 INPUT 的值,则服务器将能够在嵌套页面提交 POST 上看到这些新值,前提是它们是runat=server.

于 2012-06-04T19:19:11.770 回答
2

ASPX 是服务器端。Javascript 是客户端。除非您回调网络服务或类似的东西,否则两者不会混合使用。

您的<span>更改仅在客户端上,服务器不知道。如果您希望将交互传回服务器,请将 AJAX 作为一种解决方案。

于 2012-06-04T19:14:30.407 回答
1

添加runat="server"到您的跨度。这将导致它被视图状态拾取,并且新值将在回发期间可用。

编辑:根据 jrummel 和 mikemanne 的测试,即使用runat=server.

如果您希望该值在服务器上始终可用,我建议使用输入(如其他人建议的那样)而不是跨度。

于 2012-06-04T19:19:01.943 回答
1

是的,你的猜测是正确的!

Javascript 只看到客户端,而 ASP.NET 只看到服务器端。如果您在客户端进行了一些更改,并且希望服务器端知道该更改,则可以使用AJAX

有关详细信息,请参阅Ajax

在 .NET 中,您可以使用 WebService、Controller 或 Page 来接收 ajax 调用。

于 2012-06-04T19:16:59.503 回答