如何在MVC控制器中将对象转换为序列化对象

时间:2016-09-26 10:49:58

标签: c# model-view-controller

我发布以下对象和我的控制器页面获取字符串格式如何在c#中转换序列化对象。

 [HttpPost]
   public object StoreCheckList(object ChkList)
    {

    }

[{"Remarks": "Teat","CountryId": 1,"ClientId": 1,"FacilityId": 1,"SpaceId":2},{"Remarks": "Teat","CountryId": 1,"ClientId": 1,"FacilityId":1,"SpaceId": 5}]

3 个答案:

答案 0 :(得分:3)

您可以使用内置的MVC支持强类型模型绑定。首先,创建一个具有与输入对象

匹配的属性的类

e.g。

public class StoreCheckListModel {
    public string Remarks {get;set;}
    public int CountryId {get;set;}
    public int ClientId {get;set;}
    public int FacilityId {get;set;}
    public int SpaceId {get;set;}
}

然后将您的Mvc操作更改为:

[HttpPost]
public object StoreCheckList(StoreCheckListModel[] ChkList) {

}

答案 1 :(得分:0)

使用Newtonsoft.Json,如下所示:

YourObjectType obj = JsonConvert.DeserializeObject<YourObjectType>(json);

答案 2 :(得分:0)

顾名思义,MVC是Model,View Controller。您的问题是如何在控制器中处理我发布的请求。

但在您在控制器中处理之前,您必须确保ModelView符合此模式。

您好像没有使用Model。首先,创建一个如下所示的模型。

public class MyModel
{
    public string Remarks { get; set; }
    public int CountryId { get; set; }
    public int ClientId { get; set; }
    public int FacilityId { get; set; }
    public int SpaceId { get; set; }
}

更改您的控制器方法,

[HttpPost]
public object StoreCheckList(IEnumerable<MyModel> chkList)
{
    List<MyModel> myCheckList = chkList.ToList();
    ///do what you want to do
}

这应该没有任何序列化相关代码。