Я заполняю SelectList с данными, которые возвращаются из вызова AJAX. Тем не менее, данные отображаются в виде одного элемента с действительно длинным именем вместо нескольких десятков элементов с короткими именами. Я получаю «ABC DEF GHI JKL MNO» вместо «ABC», «DEF», «GHI» и т. Д. Итак, мой SelectList просто получает один элемент с длинным именем.
Если я просматриваю свои возвращенные данные в отладчике, я вижу короткие значения, появляющиеся в отдельных строках по желанию.
Я пытался использовать «html» вместо «json» для возвращаемого типа, но это не имело никакого эффекта.
Вот мой код на стороне сервера:
private void GetItems(HttpContext context, int myID)
{
DataTable datatable = GetMyItems(myID);
foreach (DataRow myRow in datatable.Rows)
{
Response.Write(myRow["ColumnName"].ToString() + Environment.NewLine);
}
Response.End();
}
И JavaScript ...
$.ajax({
url: "../myAjaxPage.aspx?myID=" + myID,
type: 'POST',
datatype: 'json',
success: function (data) {
$("<option>").attr("value", data).text(data).appendTo("#<%= mySelectList.ClientID %>");
}
});