2016-04-07 103 views
0

我不知道我做錯了劍道格不顯示數據MVVM

我的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> 

我的控制器代碼 // GET:API /課程

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

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

我的JSON [{「CourseID」:1,「CourseName」:「美容療法」,「IsActive」:true},{「CourseID」:2,「CourseName」:「軟件開發」,「IsActive」:true},{ CourseID「:3,」CourseName「:」記帳和會計「,」IsActive「:true}]

回答

0

我終於得到了這個修正。我的解決方案的結構是這樣的,它有一個WebAPI和一個Web應用程序。因此,在WebApiConfig.cs文件中,我添加了行config.EnableCors();它工作。

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 } 
      ); 


     }