2013-06-19 155 views
0

我想通過使用jTable將View的整個模型傳遞給控制器​​。 這裏是視圖的代碼從JTable MVC中使用jQuery將模型傳遞給控制器​​

我有一個過濾器條件的基礎上,表將被加載。 說出ModelId和ModelName的DropdownList,選擇後點擊一個按鈕,執行下面的函數。

<script type="text/javascript"> 
    function GetModels() { 

     var model = { 
     ModelId:$("#ModelId").val(), 
     ModelName:$("#ModelName").val(), 
     ModelAge:$("#ModelAge").val() 
    }; 


    $(document).ready(function() { 
     $('#PersonTableContainer').jtable({ 
      title: 'Table of Models', 
      actions: { 
       listAction: '/Controller/ActionName' 

      }, 

      fields: { 
       ModelName: { 
        title: 'ModelName', 
        width: '30%', 
        list: false 
       }, 

       ModelId: { 
        title: 'ModelId', 
        width: '30%', 
        key: true, 
        create: false, 
        edit: false 
       } 

       ModelAge: { 
        title: 'ModelAge', 
        width: '30%', 
        create: false, 
        edit: false 
       } 
      } 
     }); 
     $('#PersonTableContainer').jtable('load', { ModelName: model }); 


    }); 
    } 

這裏是控制器的代碼。

public JsonResult GetAppropriateModel(ModelName ModelName) 
    { 
     try 
     { 
      FillAppropriateModel(ModelName); 
     } 

     catch(Exception e) 
     { 
      return Json(new { Result = "Error", Message=e.Message }); 
     } 

    } 

我種在AJAX的新的,我現在面臨一個問題,即在返回的模式爲null,但是如果我會對正常的提交按鈕postaction,那麼該模型被保留。我用Google搜索,並得到範例他們通過離散元素而不是整個模型。編輯 - 這是我提到的鏈接。 http://www.jtable.org/Demo/Filtering

請幫忙。 謝謝。

回答

2

出於某種原因,MVC處理程序在jTable發送時不會正確解碼模型對象。我發現在jTable ajaxSettings中設置contentType可以修復此問題。在你的JTable定義,補充一點:

ajaxSettings: { 
    contentType: "application/json; charset=utf-8" 
} 

然後,你必須字符串化的參數,當你把它:

$('#PersonTableContainer').jtable('load', JSON.stringify({ ModelName: model })); 
相關問題