将c#.net string List转换为html下拉列表

时间:2018-01-30 16:45:17

标签: javascript c# html asp.net .net

所以我在c#.net应用程序中创建了一个字符串列表,我希望将这个列表存储在html下拉列表中。首先,我不知道我是否在我的视图中做到了,我已经设置了我的列表,但我不知道是否缺少步骤。我的代码如下:

        CalendarFolder calendar = ewsconn.Calendar;
        ExchangeService service = ewsconn.Service;
        Calendars = ewsconn.Calendars; 
        foreach (var c in Calendars)
        {
            calendarNames.Add(c.DisplayName);                            
        }
        foreach (var s in calendarNames)
        {
            Response.Write(s + "<br />");
        }
        getCalendarList(calendarNames);

这是Microsoft exchange api中x用户的每个日历文件夹名称的列表。我需要在html下拉列表中使用该列表以便稍后使用它。我能正确归还吗?在路上我有什么步骤吗?我的getCalendarList只返回我给它的列表,它没有什么特别的。

在我的javascript中,我能够获得的唯一值是上面代码中的Response.write。请参阅以下代码:

   $.ajax({
      url: '/domain/Crm/getCalendars.aspx?email=' + useremail,
      cache: false,
      contentType: false,
      processData: false,
      type: 'POST',
      dataType: "html",
      success: function (data) {
        alert(data);            
      }
 });

现在我知道这里有很多缺失,但我知道我需要将我的c#list转换为数组,然后在我的html代码中使用它,但我该怎么办? 我从我的研究中尝试过这个:

var array = @Html.Raw(Json.Encode(getCalendars.calendarNames));
    for(var i = 0; i < array.length; i++) {
        alert(array[i]); // should display "calendar1" then "calendar2" etc

但说实话,我不知道正确的语法,我也无法让它发挥作用。

有一段很长的文字,但是一些帮助将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您的C#列表有效,

@Html.Raw(Json.Serialize(--C# list--))应该有效。从那里,您可以使用值填充选择中的选项。

但是你可以让它在ajax里面工作。您可以在每个条目后添加逗号,然后拆分响应。

...
success: function (data) {
    options = data.split(',')
    //build the dropdown     
}
...