Я заполняю 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 %>");
}
});
GetItems
.data
- это всего лишь одна длинная строка, и с этой длинной строкой вы создаете только одну ‹option› с этой длинной строкой в качестве ее значения. Затем рендеринг HTML превращает символы новой строки в пробелы. - person millimoose   schedule 27.10.2011