1

name と id を持つ JavaScript 形式を使用して、mvc で @html.dropdownlist をバインドする必要があります。私は試みますが、クライアント側で値を渡さない JavaScript 側でバインドしません。私のリスト値形式の画像を以下に示します。値を name と id ではなく serial no で渡す方法。

4

2 に答える 2

1

次のような ajax リクエストでタイプを GET に変更します

 $.ajax({
 type: 'GET',
 ...

そして試してみてください

$.each(data, function (index, val) {
    $('<option/>',{value:val.Id,text:val.Text}).appendTo("#MyDdl");
 });
于 2013-03-08T06:15:42.167 に答える
0

SelectList をクライアントに送信しています。このクラスは実装IEnumerable<SelectListItem>し、SelectListItem には 2 つのプロパティがあり、ドロップダウンをバインドする必要がValueありTextます。

$.ajax({
    type: 'POST',
    url: url,
    data: { id : id },
    success: function (data) {
        $('#MyDdl').empty();
        $.each(data, function () {
            $('#MyDdl').append(
                $('<option/>', {
                    value: this.Value,
                    html: this.Text
                })
            );
        });
    }
});

あなたの例では使用してval.Idいましたが、そのようなプロパティはありません。

しかし、実際には SelectList は必要ありません。学生のコレクションを返すだけです:

[HttpPost]
public ActionResult Some(string id) 
{
    var students = service.GetAllStudents().ToList();
    students.Insert(0, new StudentModel{ Id = 0, Name = "Select student" });
    return Json(students);
}

Idこれで、ドロップダウンをこのコレクションのおよびNameプロパティにバインドできます。

$.each(data, function () {
    $('#MyDdl').append(
        $('<option/>', {
            value: this.Id,
            html: this.Name
        })
    );
});
于 2013-03-08T06:55:58.167 に答える