Ajax フォームを送信した後に Javascript 関数呼び出しを返す部分ビューがあります。住所のリストを受け取り、Javascript 関数を呼び出してジオコーディングし、Google マップにマーカーを配置します。次のコードをコンパイルすると、ForEach 行の var のあたりで「条件付きコンパイルがオフになっています」というエラーが発生します。
@model IEnumerable<TestStore.Models.Address>
@if (Model.Count() > 0)
{
<script type="text/javascript">
deleteMarkers();
@foreach(var item in Model)
{
codeAddress('@item.GetAddress');
}
</script>
}
私はコードをいじり、以下はコンパイルエラーなしで動作します:
@if (Model.Count() > 0)
{
<script type="text/javascript">
deleteMarkers();
</script>
foreach (var item in Model)
{
<script type="text/javascript">
codeAddress('@item.GetAddress');
</script>
}
}
議論のために、ループ内で多くの Javascript 関数呼び出しを行う長いロジックがある場合は、すべてを 1 つのスクリプト ブロック内に囲むことをお勧めします。Stack Overflow を検索したところ、Razor 構文がスクリプト ブロック内に入る可能性があるようですが、私の例ではどのように見えるかわかりません。