ノックアウト.jsを使用したasp.net mvcプロジェクトがあるため、多くのjavascript機能により、インデックスページが非常に大きくなっています。js コードを別のファイルに移動したいのですが、ほとんどのコードに適用することはできません。
$.ajax({
url: "@Html.Raw(@Url.Action("Load"))",
コードのこの部分を別のファイルに移動すると、エラーが表示されます。この問題を解決する方法を教えてください。
ノックアウト.jsを使用したasp.net mvcプロジェクトがあるため、多くのjavascript機能により、インデックスページが非常に大きくなっています。js コードを別のファイルに移動したいのですが、ほとんどのコードに適用することはできません。
$.ajax({
url: "@Html.Raw(@Url.Action("Load"))",
コードのこの部分を別のファイルに移動すると、エラーが表示されます。この問題を解決する方法を教えてください。
Javascript ファイルは ASP.net によって解析されないため、@Html.Raw および @Url.Action("Load") の変数は処理されません。
JavaScript ファイルは ASP.NET MVC によって解析され@Html.Raw(@Url.Action("Load"))
ないため、javascript ファイルでは機能しません。
回避策はこちら
代わりに で変数を宣言しますview.cshtml
。スクリプトセクションで
<script type="text/javascript">
var actionUrl = '@Url.Action("Load", "Controller")';
</script>
そしてactionUrl
javascriptファイルで使用します。
@James Laiが指摘したように、サーバー側のコードはASP.Netによってそのまま解析されません。回避策については、この投稿を参照してください。または、「すべて」ではなく、どのスクリプトを (サーバー側コードを使用して) ページに残すことができるかを選択して選択することもできます。どのアプローチが要件を満たすかを選択してください。