1

私は私の見解でこのコードを持っています:

<script>
    var isChanged = false;
    $(function () {
        $('#stageOne').change(function () {
                $.ajax({
                    url: "/Shop/ChangeStageTwo/",
                    data: { item: $("#stageOne option:selected").text() },
                    type: 'post',
                    success: function (myJSONdata) {
                        $("#stageTwo").html("");      
                        var items = myJSONdata;
                        for (var i = 0; i < items.length; i++) {
                            var item = items[i];
                            var optionhtml = '<option value="' + item.text + '">' + items[i] + '</option>';
                            $("#stageTwo").append(optionhtml);
                        }
                 }
            });

        });
    });
</script>

そして、これは私の ChangeStageTwo 関数です:

    public JsonResult ChangeStageTwo(string item)
    {
        // Do something...          

        var query = from f in db.Stages
                    where f.Code.Contains(tempDelivCod) && f.Code.Length > 4
                    select f.Name;
        var sItems = new SelectList(query);
        return Json(sItems, JsonRequestBehavior.AllowGet); 
    }

しかし、実行時に、正確な値ではなく、DropDownList に [object Object] を取得します。何が問題ですか?

4

2 に答える 2

1

この機能はうまくいくと思います:

var items = myJSONdata;//somethink like ["aa", "bb"]...
$(items).each(function(index, optionText) {
    $("#stageTwo").append($('<option />').attr('value', optionText).text(optionText));
});
于 2013-04-08T07:27:31.827 に答える
0

この行:

var optionhtml = '<option value="' + item.text + '">' + items[i] + '</option>';

次のようにする必要があります。

var optionhtml = '<option value="' + item.text + '">' + item.text + '</option>';

また

var optionhtml = '<option value="' + item.id + '">' + item.text + '</option>';

JSON 出力を提供していただければ、より具体的に説明できます。

于 2013-04-06T13:44:05.733 に答える