我正在改變javascript的內容。我可以看到它隨查看源而改變。aspx會不會看到由JavaScript做出的更改?
當我嘗試獲取c#函數中的內容後,它仍然具有舊值。
我的猜測是,ASP只是看到它發送客戶端的HTML,並且該JavaScript正在改變客戶端的HTML,其中ASP無法看到?
這是我對如何解釋它的唯一猜測。這是正確的嗎?
謝謝。
我正在改變javascript的內容。我可以看到它隨查看源而改變。aspx會不會看到由JavaScript做出的更改?
當我嘗試獲取c#函數中的內容後,它仍然具有舊值。
我的猜測是,ASP只是看到它發送客戶端的HTML,並且該JavaScript正在改變客戶端的HTML,其中ASP無法看到?
這是我對如何解釋它的唯一猜測。這是正確的嗎?
謝謝。
是的,你的猜測是正確的!
Javascript只看到客戶端和ASP.NET只看到服務器端。如果您在客戶端進行了一些更改,並且希望服務器端知道該更改,則可以使用AJAX。
有關更多信息,請參閱Ajax。
在.NET中,您可以使用WebService,Controller或Page來接收ajax調用。
ASPX是SERVER SIDE。 Javascript是客戶端。除非你打電話回web服務或類似的東西,否則兩者不會混合。
您的<span>
更改僅在客戶端上,服務器不知道它。如果您希望將交互交流回服務器,請將AJAX視爲解決方案。
將runat="server"
添加到您的範圍。這將導致它被視圖狀態拾取,並且新值將在回發期間可用。
編輯:根據jrummel和mikemanne測試,跨度不會回發,即使用runat=server
裝飾時。
如果您希望服務器上的值始終可用,那麼我會建議使用輸入(如其他建議)而不是跨度。
除非您正在更改支持將值發回服務器,否則您的更改將被丟棄。 <span>
不會被髮送到服務器。
但是,如果您更改INPUT的值,那麼服務器將能夠在嵌套頁面提交POST上看到這些新值,前提是它們是runat=server
。
你最近怎麼做這個改變?顯示一些代碼 –
也查看html的瀏覽器緩存 –
服務器端無法區分由JavaScript或個人輸入的數據,也不關心。當您執行POST或GET時,更改將以相同的方式反映出來。 – Snuffleupagus