2

更新 :同僚から、これは MVC4 ベータ版の既知のバグであると言われました。この問題は、javascript の } ブラケットが原因で、RenderSection がセクションが終了したと認識してしまうことが原因です。

ページ固有の jquery のレイアウトに rendersection があります。ビューからレンダリング セクションにコードが正しくコピーされていません。

_Layout.cshtml (テンプレート _Layout.cshtml + 新しいセクション) に次のものがあります。

<script src="@Url.Content("~/Scripts/AjaxLogin.js")" type="text/javascript"></script>
        @RenderSection("jqueryheader", false)

        <meta name="viewport" content="width=device-width">
    </head>

Index.cshtml に次のコードがあります。

@section jqueryheader {
<script type="text/javascript">
    $(document).ready(function () {
        var listid = '@(Model.ID)';
        $("#additem").load("~/Item/AddItem/" + listid);
    });
</script>
}

IE で次の出力が得られます。

<script src="/Scripts/AjaxLogin.js" type="text/javascript"></script>

<script type="text/javascript">
    $(document).ready(function () {
        var listid = '9f3348ef-f713-48c6-a267-3777182cf39e';
        $("#additem").load("~/Item/AddItem/" + listid);


        <meta name="viewport" content="width=device-width">
    </head>

RenderSection が});</script>?を見逃した理由を知っている人は誰でも

4

2 に答える 2

3

考えられる理由は、<meta>タグが適切に閉じられていないために、IEでそのような結果が生じる可能性があります。

<meta>タグを閉じてみてください/>

<meta name="viewport" content="width=device-width" />
于 2012-04-11T06:01:54.777 に答える
2

JavaScript をヘッダーに入れたい理由はありますか?

ここで何が問題なのか 100% はわかりませんが、ベスト プラクティスの提案を次に示します。このスクリプトをビュー/ページの下部に配置することをお勧めします。それはベストプラクティスです。したがって、レイアウト ビュー/マスター ページで、body タグを閉じる直前に次の操作を行います。

<body>

     <!-- Other HTML code -->

     <script src="@Url.Content("~/Assets/JavaScripts/jquery-1.7.2.min.js")"></script>
     @RenderSection("JavaScriptBodySection", false)

</body>

そして、あなたの見解では、これを行うだけです:

@section JavaScriptBodySection
{
     <script>

          $(document).ready(function () {
               var listid = '@(Model.ID)';
               $("#additem").load("~/Item/AddItem/" + listid);
          });

     </script>
}

私の文書タイプは HTML 4.01 strict だったので、私もあなたのようなメタ タグを持っています。この問題は一度もありませんでした。すべての JavaScript をページの下部に配置しました。

于 2012-04-11T08:29:33.770 に答える