1

DropdownList (キャンパス) からアイテムを選択したときに何が欠けているのかわかりません。AutoPostBack を起動して、Building である別の DropdownList をロードしますが、発生していません.... autopostback をオンにしようとしていますDropDownListFor

問題は何ですか:以下のコードは、通常の MVC 4 レイアウトでは問題なく動作しますが、レイアウトのみに問題がありTwitterBootStrapます。TwitterBootStrap レイアウトを操作するには、何を変更または行う必要がありますか?

ここに私のコードがあります:,

@using (Ajax.BeginForm("CampusSelect", "Facility", new AjaxOptions { UpdateTargetId = "Campus_Building" }))
{ 
    @Html.DropDownListFor(
            m =>  m.CampusId,
            new SelectList(Model.GetAllCampus(), "CampusId", "Text"),
           string.Empty
        )
}
<script type="text/javascript">
    $('#CampusId').change(function () {
        $(this).parents('form').submit();
    });
</script>
4

2 に答える 2

1

簡単にするために、次のコードを使用してonchangeイベントを適用できます。

@Html.DropDownListFor(
    m =>  m.CampusId,
    new SelectList(Model.GetAllCampus(), "CampusId", "Text"),
    string.Empty,
    new { onchange = "$(this.form).submit();"}
)

ただし、スクリプトはそのままでも機能するはずです...それはもっと面倒です。id="CampusId"ページのどこかに別の要素があるため、機能していないと思います。

于 2013-09-26T15:57:51.930 に答える
1

間違ったオーバーロードを使用しています。ドロップダウンのIDを設定していません。そのはず:

@Html.DropDownListFor(
    m =>  m.CampusId,
    new SelectList(Model.GetAllCampus(), "CampusId", "Text"),
    new { id = "CampusId" }
)

その後、スクリプトが機能します。

オーバーロードとの混乱を避けるために、TwitterBootstrapMVCを使用してください:

@Html.Bootstrap().DropDownListFor(m =>  m.CampusId, new SelectList(Model.GetAllCampus(), "CampusId", "Text")).Id("CampusId")
于 2013-09-26T23:57:21.550 に答える