2013-08-01 45 views
0

使用彈出編輯劍道網格。我驗證了數據從視圖發佈(我可以看到它在網絡選項卡,在這裏看看吧:劍道網格 - 張貼編輯在控制器爲空

{"LetterId":12,"BodyText":"This is a test","CreatedDate":"07/31/2013","CreatedBy":"Grace Rodgers","ModifiedDate":"07/31/2013","ModifiedBy":"Grace Rodgers","PersonId":18,"FirstName":"Jason","LastName":"Bigby"}: 

不過,我有一個斷點在控制器的JSON的方法,並徘徊在在模型參數,以顯示所有字段爲空下面是控制器代碼的前幾行:

[HttpPost] 
    public JsonResult JsonEditLetter(LetterViewModel model) 
    { 

,並在視圖中劍道代碼:

var PersId = $("#PersonId").val(); 

    var ds_LettersGrid = new kendo.data.DataSource({ 
     transport: { 
      read: { 
       url: '@Url.Action("JsonGetLetterList", "Letter")/' + PersId, 
       dataType: 'json' 
      }, 
      update: { 
       url: '@Url.Action("JsonEditLetter", "Letter")', 
       dataType: 'json', 
       type: "POST" 
      }, 
      parameterMap: function (data, type) { 
       if (type == "update") { 

        data.models[0].CreatedDate = kendo.toString(new Date(data.models[0].CreatedDate), "MM/dd/yyyy"); 
        data.models[0].ModifiedDate = kendo.toString(new Date(data.models[0].ModifiedDate), "MM/dd/yyyy"); 

       return kendo.stringify(data.models[0]); 
       } 
      }, 

     }, 
     batch: true, 
     schema: { 
      model: { 
       id: "LetterId", 
       fields: { 
        BodyText: { editable: true }, 
        CreatedDate: { editable: false, type: "date"}, 
        ModifiedDate: { editable: false, type: "date" }, 
        CreatedBy: { editable: false}, 
        ModifiedBy: { editable: false }, 
        PersonId: { defaultValue: PersId } 
       } 
      } 
     }, 
     pageSize: 10 
    }); 

    $(document).ready(function() { 

     $("#letter-list").kendoGrid({ 
      dataSource: ds_LettersGrid, 
      sortable: true, 
      filterable: { extra: false, operators: { 
       string: { startswith: "Starts with", eq: "Is equal to" } 
      } 
      }, 
      pageable: true, 
      columns: [{ 
       field: "BodyText", title: "Letter Content", width: 400, filterable: false 
      }, { 
       field: "CreatedBy", title: "Author", filterable: false 
      }, { 
       field: "CreatedDate", title: "Original Date", format: "{0:g}", filterable: { ui: "datetimepicker" } 
      }, { 
       field: "ModifiedBy", title: "Edited By", filterable: false 
      }, { 
       field: "ModifiedDate", title: "Editted On", format: "{0:g}", filterable: { ui: "datetimepicker" } 
      }, { 
       command: [ "edit" ], title: "", width: "110px" 
      }], 
      height: "300px", 
      resizable: true, 
      editable: "popup" 
     }); 
    }); 

回答

2

您需要添加默認價值,你的id字段,becouse客戶端產生價值的新ID,你已經在服務器自動增量產生的值id和射擊誤差

schema: { 
      model: { 
       id: "LetterId", 
       fields: { 
        LetterId: {defaultValue: 16000} 
        BodyText: { editable: true }, 
        CreatedDate: { editable: false, type: "date"}, 
        ModifiedDate: { editable: false, type: "date" }, 
        CreatedBy: { editable: false}, 
        ModifiedBy: { editable: false }, 
        PersonId: { defaultValue: PersId } 
       } 
      } 
     } 
+0

謝謝,但沒有什麼區別。 – BattlFrog

+0

它必須工作,再次檢查 –

+0

噢等等!嘗試更改id到LetterId –

1

我想通了,它需要一個特定的內容類型。傳遞的類型是一個表單,但控制器需要json。所以運輸現在看起來像:

  update: { 
       url: '@Url.Action("JsonEditLetter", "Letter")', 
       dataType: 'json', 
    >>>>>>>> contentType: "application/json", 
       type: "POST" 
      },