スパンの内容をjavascriptで変更しています。ビューソースによって変更されていることがわかります。
直後にac#関数の内容を取得しようとすると、まだ古い値が残っています。
私の推測では、aspはクライアントに送信したhtmlを表示しているだけであり、javascriptはaspが表示できないクライアントのhtmlを変更していますか?
これはそれを説明する方法についての私の唯一の推測でした。これは正しいでしょうか?
ありがとう。
スパンの内容をjavascriptで変更しています。ビューソースによって変更されていることがわかります。
直後にac#関数の内容を取得しようとすると、まだ古い値が残っています。
私の推測では、aspはクライアントに送信したhtmlを表示しているだけであり、javascriptはaspが表示できないクライアントのhtmlを変更していますか?
これはそれを説明する方法についての私の唯一の推測でした。これは正しいでしょうか?
ありがとう。
変更するものがサーバーへの値のPOSTをサポートしていない限り、変更は破棄されます。 <span>
はサーバーにPOSTされません。
ただし、INPUTの値を変更すると、サーバーは、ネストページの送信POSTでそれらの新しい値を確認できるようになります(ただし)runat=server
。
ASPXはサーバーサイドです。Javascriptはクライアントサイドです。Webサービスなどにコールバックしない限り、この2つが混ざり合うことはありません。
<span>
変更はクライアント上でのみ行われ、サーバーはそれを認識しません。インタラクションをサーバーに戻したい場合は、解決策としてAJAXを検討してください。
はい、あなたの推測は正しいです!
Javascriptはクライアント側のみを認識し、ASP.NETはサーバー側のみを認識します。クライアント側で変更を加え、サーバー側でその変更を認識したい場合は、AJAXを利用できます。
詳細については、 Ajaxを参照してください。
.NETでは、Webサービス、コントローラー、またはページを使用してajax呼び出しを受信できます。
runat="server"
スパンに追加します。これにより、ビューステートによって取得され、ポストバック中に新しい値が使用可能になります。
編集:jrummelとmikemanneによるテストによると、スパンはで装飾されていてもポストバックされませんrunat=server
。
サーバーで値を一貫して使用できるようにする場合は、スパンの代わりに入力を使用することをお勧めします(他の人が示唆しているように)。