メインページに2つの部分が含まれるWebアプリに取り組んでいます.常に表示される定数ブロックと、3つの部分ビューの1つで構成される情報ブロックです。各部分ビューは、AJAX 要求の結果として表示され、一度だけ読み込まれます (その後、jquery によってウィンドウの切り替えが提供されます)。うまく機能しますが、1つの問題に直面しました。
部分ビューの html コードには、定数ブロックと情報ブロックでも使用される js 関数が含まれています。ページが読み込まれると、これらの関数はお互いを「認識」して機能しますが、resharper は関数宣言を見つけることができず、これについて警告することができません。コードで見つかるかみそりの構文のため、それらを外部jsファイルに転送しても問題を解決できません。
これで何ができますか?
ありがとう。
アップデート:
最後に、js コードをビューから分離する問題を解決することにしました。したがって、新しい質問は、かみそりの構文を js ファイルに含める方法、または受け入れ可能な代替手段は何かということでした。私が見つけた一般的なソリューションは、グローバル変数、データ属性、および私がより気に入っているもの、John Katsiotis による RazorJS ライブラリを使用するものです。
http://djsolid.net/blog/razorjs---write-razor-inside-your-javascript-files
安定して動作し、Resharper を満足させてくれることを願っています。
乾杯!
アップデート:
3 年後、私はこの質問を思い出し、自分の経験に基づいて更新することにしました。実際、そのために追加のライブラリを使用することはお勧めしません。特に、プロジェクト チームのメンバーがあなただけではない場合... すべてのライブラリが作成者とコミュニティによってサポートされ、IDE に簡単に統合できることが保証されている場合 (たとえば、特別な構文を使用している場合) は、はるかに優れています。 . また、あなたのチームのすべての人は、それがどのように機能するかを認識している必要があります. したがって、次のことを行うことをお勧めします。
- すべての JS を別々のファイルに保持します。できるだけ隔離してください。そのための外部 API を提供します。
- ビューから API 関数を呼び出します。
- Razor で生成されたすべての URL、テキスト メッセージ、定数をリソース パラメーターとして渡します。
例えば:
js ファイル:
$.api.someInitFunction = function(resources){ ... }
意見:
<script>
$.api.someInitFunction({
urls: { myAction: '@Url.Action("MyAction", "MyController")' },
messages: { error: '@errorMessage' },
consts: { myConst: @myIntConst }
});
</script>