我正在使用javascript更改span的内容。我可以看到它已随视图源而改变。
当我尝试在c#函数中获取内容后,它仍然具有旧值。
我的猜测是,asp只是看到它发送给客户端的html,并且javascript正在改变asp无法看到的客户端html?
这是我对如何解释它的唯一猜测。这是正确的吗?
感谢。
答案 0 :(得分:3)
除非您要更改的内容支持将值重新发送回服务器,否则您的更改将被丢弃。 <span>
没有被POST到服务器。
但是,如果更改了INPUT的值,那么服务器将能够在嵌套页面提交POST上看到这些新值,前提是它们是runat=server
。
答案 1 :(得分:2)
ASPX SERVER SIDE 。 Javascript是客户端。除非你回电话给网络服务或类似的东西,否则两者不会混合。
您的<span>
更改仅在客户端上进行,服务器不知道。如果您希望将交互传达回服务器,请将AJAX视为一种解决方案。
答案 2 :(得分:1)
是的,你的猜测是正确的!
Javascript只看到客户端,ASP.NET只看到服务器端。如果您在客户端进行了一些更改,并且您希望服务器端知道该更改,则可以使用 AJAX 。
有关详细信息,请参阅Ajax。
在.NET中,您可以使用WebService,Controller或Page来接收ajax调用。
答案 3 :(得分:1)
将runat="server"
添加到您的范围内。这将导致它被视图状态选中,并且在回发期间可以使用新值。
编辑:根据jrummel和mikemanne的测试,即使用runat=server
装饰,跨度也不会回发。
如果您希望服务器上的值始终可用,我建议使用输入(如其他人建议的那样)而不是span。