2017-04-14 112 views
0

我是ASP,Kendo和一般編程的新手。 我想用Kendo Grid來刪除數據庫;但我有點失落。帶有Angular和Kendo UI的ASP.Net MVC

我有一個簡單的類:Person,名稱和姓氏。 生成的控制器和視圖工作得很好,我可以CRUD數據庫。

然後,採用了棱角分明我創造了這個模塊:

`angular.module("KendoDemos2", ["kendo.directives"]) 
    .controller("MyCtrl2", function ($scope) { 
     $scope.mainGridOptions = { 
      dataSource: new kendo.data.DataSource({ 
       transport: { 
        read: { url: "/Person/Read", dataType: "json" }, 
        create: { url: "/Person/Create", dataType: "json", type: "POST" }, 
        update: { url: "/Person/Update", dataType: "json", type: "PUT" }, 
        destroy: { url: "/Person/Delete", dataType: "json", type: "DELETE" }, 
        parameterMap: function (options, operation) { 
         if (operation !== "read") { 
          console.log(options) 
          return kendo.stringify(options); 
         } 
        } 
       }, 
       batch: false, 
       pageSize: 10, 
       schema: { 
        model: { 
         id: "Id", 
         fields: { 
          Name: { type: "string }, 
          Surname: { type: "string" }       } 
        } 
       } 
      })` 

的問題是:

首先,當我創建網格上,一個新的人,當我按下「創建」,我不不知道數據是否傳遞給控制器​​。其次,在控制器中,我不知道如何接收這些信息(我相信JSON)。

對不起,我是一個初學者。

編輯

我對控制器的這種方法:

[HttpPost] 
     public ActionResult Create(Person model) 
     { 
      if (model != null) 
      { 
       return Json("Success"); 
      } 
      else 
      { 
       return Json("An Error Has Occurred"); 
      } 
     } 

所以,這是被髮送到人/製作方法: {名稱: 「約翰」,姓「 Doe「}

哪個返回成功;

但是,如何從Json中獲取這些屬性並填充模型?

+0

'什麼編輯您使用的?'歡迎到左右爲好:) – mvermef

+0

嘿,謝謝! :) 我在Visual Studio的2015年 – Migu3litto

+0

你想用個破發點,看看數據如何到處移動到不同的電話..在編輯器屏幕左側的代碼塊你的緣近左側邊緣附近的工作中,你可以切換不同的東西,比如書籤,但在次重要的是破發點允許執行代碼在顏色'pause'它的紅色,並允許「調試」 @那個位置,你可以看到剛纔的一切與該代碼相關。 – mvermef

回答

0

好吧。

  • POST =創建
  • GET =好在請求的類型的場景中獲得從 瀏覽器到服務器
  • PUT =更新
  • DELETE =正好刪除

所以那些是動詞與HTTP相關的w HEST RESTFUL APIS居住,大部分還有很多要看,這個回答的範圍

作爲調用性質的結果,它已經理解某些事情,例如您發送的數據類型是Content-Type: application/json

從這種方法中遺漏的一件事我很驚訝它不存在 [FromBody],除非您自己手工編碼Method而不是腳手架它。對於剛開始的人可以理解。 :)

看到這將break points其中之一放在旁邊的if語句將允許您看看model是否確實填充了post調用的內容。

[HttpPost] //because we want to create (new Person(){}) right? 
public ActionResult Create([FromBody] Person model){ 
    if(model != null && model.IsValid){ 

     //EntityFramework or what ever DB you are using 
     _context.Person.Add(model); 
     _context.SaveChanges(); 

     //doing this returns to the client that it was created as well as the 
     //Id of the newly inserted record. model.Id was automagically updated with the Id. 
     return Created("api/person/create", model); 
    } 
    else{ 
    //something was horribly wrong with the model sent 
    return BadRequest("Invalid Model"); 
} 
} 

我認爲這將涵蓋廣泛的問題。我認爲你正在使用asp.net所以JsonResult的舊版本可能是可用的,以及,BadRequest and Created承擔ApiControllerAsp.net Core

0

mvermef正在使用或Controller,非常感謝你對所有的解釋。 我正在使用ASP.Net MVC 5和EF。 我照你所說的完成了工作。

我沒有將網絡API在第一,但它需要使[FromBody]工作。

另一個小但重要的是包括在劍道配置的contentType: 創建:{URL: 「/人/創建」,數據類型: 「JSON」,鍵入: 「POST」,的contentType:「應用/ JSON的;字符集= UTF-8"},

+0

很高興它爲你工作:) – mvermef