2014-02-11 2 views
0

я есть кендо DropDownList, который использует MVC обертокКендо UI Dropdown Список

код

Html.Kendo.DropDownList() _ 
     .Name("MainCategories") _ 
     .HtmlAttributes(New With {.style = "width: 250px"}) _ 
     .DataTextField("CategoryName") _ 
     .OptionLabel("Select A Category") _ 
     .DataValueField("ID") _ 
     .DataSource(Function(source) 
         source.Read(Function(read) read.Action("GetCategories", "Home")) 
        End Function _ 
        ) _ 
    .Render() 


End Code 

У меня есть функция в контроллере

Public Function GetCategories() As String 

    ' Dim dr As DataRow 
    Dim dt As New DataTable 
    Dim query As New LibQuery(LibSQL.ConString) 
    query.OpenNoTran() 
    Dim da As SqlDataAdapter = MainCategories.LoadAllMainCategoriesAdapt(query) 
    da.Fill(dt) 

    Dim serializer As New System.Web.Script.Serialization.JavaScriptSerializer() 

    Dim rows As New List(Of Dictionary(Of String, Object))() 
    Dim row As Dictionary(Of String, Object) 
    For Each dr As DataRow In dt.Rows 
     row = New Dictionary(Of String, Object)() 
     For Each col As DataColumn In dt.Columns 
      row.Add(col.ColumnName, dr(col)) 
     Next 
     rows.Add(row) 
    Next 
    Return serializer.Serialize(rows) 

    ' Return Json(da, JsonRequestBehavior.AllowGet) 

End Function 

и проверяя внутримышечно возвращения a json result

[{"ID":1,"CategoryName":"Hair Dressing"}, 
{"ID":2,"CategoryName":"Gardening"}, 
{"ID":3,"CategoryName":"Animal Care"}, 
{"ID":4,"CategoryName":"Accounting"}, 
{"ID":5,"CategoryName":"Cleaning"}, 
{"ID":6,"CategoryName":"Automotive"}, 
{"ID":7,"CategoryName":"Another"}, 
{"ID":8,"CategoryName":"Costas Cooking"}, 
{"ID":9,"CategoryName":"cvb"}, 
{"ID":10,"CategoryName":"cvbcbvcbv"}, 
{"ID":11,"CategoryName":"cxxxxx"}, 
{"ID":12,"CategoryName":"MVC ABout Is Working"}, 
{"ID":13,"CategoryName":"Another MvC"}] 

по какой-либо причине все значения списка (datatextvalue) являются «неопределенными» в выпадающем списке, который является странным: im использует мои собственные файлы подключения к базе данных, которые должны быть точными. возможно, потому что я не использую JsonResult ?? есть идеи.

спасибо

ответ

1

Вы в настоящее время, кажется, возвращает в JSON в виде строки - с дополнительными кавычками, например, "[{" ID ": 1}]". Это связано с тем, что вы сами сериализуете его, вместо того чтобы оставить его методу Json().

Попробуйте использовать

Return Json(rows, JsonRequestBehavior.AllowGet) 

вместо

Return serializer.Serialize(rows) 
Смежные вопросы