DropDownList 值和文本

DropDownList value and text

我正在使用 jquery 填充 ASP.NET MVC 中的下拉列表

$(function () {
    $.getJSON('/GetFoo', function (result) {
        var ddl = $('#foo');
        ddl.empty();
        $(result).each(function () {
            $(document.createElement('option'))
                .attr('value', this.Id)
                .text(this.Text)
                .appendTo(ddl);
        });
    });
});

这是 return JSON 在该过程中使用的控制器操作:

public ActionResult GetFoo()
{
    ViewBag.IdTable = new SelectList(db.Table, "IdTable", "Description");
        return Json(ViewBag.IdTable, JsonRequestBehavior.AllowGet);
}

下面是我的下拉列表进入视图的方式:

@Html.DropDownListFor(model => model.IdTable,Enumerable.Empty<SelectListItem>(), "-- Loading Values --", new { id = "foo" })

为了进一步说明我在做什么,我想在 select 列表选项中显示描述而不是 IdTable。

在我验证下拉列表选择之前一切正常。事实上,它给出了以下错误:

The value [Choice] is not valid for IdTable.

所以我猜 select 列表选项的值设置为描述字段,而不是 ID 字段。

我该如何解决?

试试这个:

public ActionResult GetFoo()
{
    return Json(db.Table.Select(x=> new { Id = x.IdTable, Text = x.Description}), 
        JsonRequestBehavior.AllowGet);
}

或者在你的JS里改

.attr('value', this.Id)

.attr('value', this.Value)