0

私はどこかで何か間違ったことをしていることを知っています。誰かが私にそれを指摘できますか?

CurrentSectionプロパティを含むビューモデルがあります

public String CurrentSection {get; set;}

ビューでは、viewmodel と jQuery を呼び出します

@model Application1.ViewModels.fooVM

@Scripts.Render("~/bundles/jquery")

次に、次のことを行います(JSFiddleで機能します)

<script type="text/javascript">
    $(document).ready(function () {
        $("#CurrentSection").val('SecStoreIndex');
    });
</script>

@Html.EditorFor(X => X.CurrentSection)

EditorFor を使用してレンダリングする

<input id="CurrentSection" name="CurrentSection" type="hidden" value="" />

誰かが私が間違っていることを指摘できますか?

4

2 に答える 2

0

jQuery を使用しているスクリプトが、jQuery を含めた後に配置されていることを確認します。

@model Application1.ViewModels.fooVM

@Scripts.Render("~/bundles/jquery")

<script type="text/javascript">
    $(document).ready(function () {
        $("#CurrentSection").val('SecStoreIndex');
    });
</script>

@Html.EditorFor(X => X.CurrentSection)

また、_Layout.cshtmlあなたの中にまだ@Scripts.Render("~/bundles/jquery")呼び出しがなく、重複した jQuery インクルージョンを取得していないことを確認してください。

また、デフォルト テンプレートは _Layout の Scripts セクションを使用することにも注意してください。したがって、このデフォルト テンプレートを使用してアプリケーションを作成した場合は、スクリプトをこのセクション内に配置する必要があります。

@model Application1.ViewModels.fooVM

@section Scripts {
    <script type="text/javascript">
        $("#CurrentSection").val('SecStoreIndex');
    </script>
}

@Html.EditorFor(X => X.CurrentSection)

また、この場合、ラッパーを削除したことにも注意してください。これは、デフォルトのテンプレートがすべてのスクリプトを DOM の最後、終了タグ$(document).readyの直前に配置するためです。</body>

于 2013-02-07T13:37:20.427 に答える
0

私は手を上げて愚かさを認めています。

ページのソースを表示して、動的に変更された値のビューを表示しようとしていました。突然、これが表示されないことに気づきました。アラートを投げましたが、値が変更されています。

お時間を無駄にして申し訳ありません。

于 2013-02-07T16:20:55.027 に答える