2016-04-07 13 views
0

Ich bin nicht sicher, was ich falsch macheKendo Raster keine Daten MVVM Anzeige

Mein HTML

<head> 
    <title></title> 

    <script src="include/libraries/jquery/jquery-2.2.2.min.js"></script> 
    <script src="include/libraries/jquery/jquery-2.2.2.intellisense.js"></script> 
    <script src="include/libraries/jquery/jquery-2.2.2.js"></script> 

    <link href="include/libraries/kendo/css/kendo.bootstrap.min.css" rel="stylesheet" /> 
    <link href="include/libraries/kendo/css/kendo.common-bootstrap.min.css" rel="stylesheet" /> 

    <script src="include/libraries/kendo/js/kendo.all.js"></script> 
    <script src="include/libraries/kendo/js/kendo.all.min.js"></script> 
    <script src="include/libraries/kendo/js/kendo.aspnetmvc.min.js"></script> 
    <script src="include/libraries/kendo/js/kendo.custom.min.js"></script> 
    <script src="include/libraries/kendo/js/kendo.timezones.min.js"></script> 


    <meta charset="utf-8" /> 
</head> 
<body> 
    <div id="grid"> 
     <div class="demo-section k-content wide"> 
      <div> 
       <h4>Add or update a record</h4> 
       <div data-role="grid" 
        data-editable="true" 
        data-toolbar="['create', 'save']" 
        data-columns="[ 
           { 'field': 'CourseID' }, 
           { 'field': 'CourseName' }, 
           { 'field': 'IsActive' }, 
           ]" 
        data-bind="source: courses, 
          visible: isVisible, 
          events: { 
           save: onSave 
          }" 
        style="height: 200px"></div> 
      </div> 
     </div> 

     <script> 

      var viewModel = kendo.observable({   


        isVisible: true, 
        onSave: function(e) { 
         kendoConsole.log("event :: save(" + kendo.stringify(e.values, null, 4) + ")"); 
        }, 

        courses: new kendo.data.DataSource({ 
         schema: { 
          model: { 
           id: "CourseID", 
           fields: { 
            CourseID: { type: "number" }, 
            CourseName: { type: "string" }, 
            IsActive:{type:"boolean"} 
           } 
          } 
         }, 
         batch: true, 
         transport: { 
          read: { 
           type:"GET", 
           url: "http://localhost:51447/api/Courses", 
           dataType: "jsonp" 
          }, 

          parameterMap: function(options, operation) { 
           if (operation !== "read" && options.models) { 
            return {models: kendo.stringify(options.models)}; 
           } 
          } 
         } 
        }) 
       }); 
       kendo.bind($("#grid"), viewModel); 
      </script> 
     </div> 

    </body> 

mein Controller-Code // GET: api/Kurse

public IQueryable<object> GetCourses() 
    { 
     return db.Courses.Select(
      o => new 
      { 
       CourseID = o.CourseID, 
       CourseName = o.CourseName, 
       IsActive = o.IsActive 
      }); 

    //}).Where(l => l.IsActive == false); 
    } 

Mein JSON [{"CourseID": 1, "CourseName": "Schönheitstherapie", "IsActive": true}, {"CourseID": 2, "CourseName": "Softwareentwicklung", "IsActive": true}, {" CourseID ": 3," CourseName ":" Buchhaltung und Buchhaltung "," IsActive ": true}]

Antwort

0

Endlich habe ich das behoben. Die Struktur meiner Lösung ist so, dass sie eine WebAPI und eine Web-App hat. Also habe ich in der WebApiConfig.cs Datei die Zeile config.EnableCors(); und es hat funktioniert.

public static void Register(HttpConfiguration config) 
     { 
      // Web API configuration and services 

      config.EnableCors(); 

      // Web API routes 
      config.MapHttpAttributeRoutes(); 

      config.Routes.MapHttpRoute(
       name: "DefaultApi", 
       routeTemplate: "api/{controller}/{id}", 
       defaults: new { id = RouteParameter.Optional } 
      ); 


     } 
Verwandte Themen