2016-03-03 40 views
1

假设我想向Web Api控制器发送一些序列化的实体。如何在asp.net中管理Web api控制器的序列化/反序列化mvc

例如像这样:

var rectification = {}; 
rectification.id = "some string"; 
rectification.idType = "string"; 
rectification.objectId = "56d560564ee6bc45a0d7b711" 
rectification.type="ObjectId" 

$.ajax({ 
     url: '/controller/method', 
     async: false, 
     type: "POST", 
     data: JSON.stringify(rectification), 
     dataType: "json", 
     contentType: "application/json; charset=utf-8", 
     error: function(jqXHR, textStatus, errorThrown) { 
      alert(jqXHR + "-" + textStatus + "-" + errorThrown); 
     }, 
     success: function(data, textStatus, jqXHR) { 
      $("#Results").show(); 
      $("#ResultMessage").html(data.Message); 
     } 
    }); 
在我的web API控制器

然后我想根据一定的规则应该是通用于所有控制器它反序列化,我想描述的一些C#代码级的规则。我意识到MediaTypeFormatters实现应该用于此目的,但不能找到如何使它的好建议。

回答

0
[HttpPost] 
public JsonResult MethodName(ViewModel model) 
{ 
// Your Code here  
} 

public class ViewModel 
{ 
//All your property which you passing from view to controller via AJAX 
public string id { get; set; } 
public string idType { get; set; } 
public string objectId { get; set; } 
public string type{ get; set; } 
} 

您的方法将解析数据并按键设置。但要确保双方(客户端和服务器端)密钥名称必须相同。

+0

我想更改标准映射。这就是为什么我不能使用你的建议 –

+0

其实我需要修改现有的标准映射 –

+0

试试这个会对你有用。因为它是通过ajax将数据传递给控制器​​中的方法的标准且安全的方式。 –