1

サーバー側:「IEnumerable」型の ViewBag を作成します

Cliectside: ViewBag を反復処理して、ドロップダウンを構築します。

JavaScript/jQuery で SelectListItems を反復するにはどうすればよいですか?

Firefox エラー メッセージ:「TypeError: list.each は関数ではありません」

function test() {
    var modtagerId = $('#ModtagerId');
    modtagerId.empty();

    // ViewBag.dropdownModtagerListeNyhedsbrev is of type "IEnumerable<SelectListItem>"
    var list = ViewBag.dropdownModtagerListeNyhedsbrev;

    list.each(function () {
        $("<option />", {
            val: this.value,
            text: this.text
        }).appendTo(modtagerId);
    });
}
4

1 に答える 1

1

私はついにこれを回避しました。foreach代わりにJavaScriptを使用<text>し、Razor をエスケープしていました。

誰かが気になる場合の私の解決策:(他の人のために console.log() を保持しています)。

function updateModtagerGruppeDropdown() {
    var modtagerId = $('#ModtagerId');
    modtagerId.empty();

    @foreach (var item in ViewBag.dropdownModtagerListeVelkomstbrev)
    {
        @:console.log('list: ' + "@(item.Value)" + ", " + "@(item.Text)");
        <text>
            var value = "@(item.Value)";
            var text = "@(Html.Raw(item.Text))";
            $("<option />", {
                val: value,
                text: text
            }).appendTo(modtagerId);
        </text>
    }
}
于 2014-09-18T10:47:28.413 に答える