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 回答