Webページが読み込まれたときにこのコードを実行しないようにしてください。Javascript onload MVC ASP .NET MVC
<input type="submit" class="btn btn-info col-md-pull-4" value="Download" id="mybutton" onclick="myFunction">
<script type="text/javascript">
function myFunction() {
document.getElementById("mybutton") = @api.function();
}
</script>
ページをロードするたびに、これがウェブAPIに接続し、api.functionコードを起動します。私は、私が持っているボタンがクリックされたときにのみこれが起こるようにしたい。
私はこれについて間違った方法をしていますか?
投稿した内容に基づいてボタンをクリックしたときにだけその関数が呼び出されるため、すべてのコードが含まれているとは思われません。何が呼び出されているのか知りたければ、実行時にスタックトレースを見てください。これを行うには、関数に新しい行を追加し、 'debugger;'と書いて、その時点でスクリプトの実行を停止する開発者/デバッグツールを開いた状態でブラウザを選択します。次に、スタックトレースを見て、何を呼び出しているのかを把握します。 – Igor
また、私は '@ api.function()'が何をしているのかわかりません、あなたはapiへの呼び出しがクライアントではなくサーバーから行われているのでしょうか? – Igor
問題は、サーバー側のコードが実行されるときにサーバー側のコード '@ api.function()'が呼び出されることです。 ブラウザでソースを見ると(オープンページ、ソースを表示)、 '@ api.function()'の結果がソースに埋め込まれていることがわかります。 –