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

问题描述:

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

[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}] 

使用Newtonsoft.Json,就像这样:

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

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

例如

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) { 

} 

,顾名思义,是MVC模型 - 视图 - 控制器。你的问题是关于如何在控制器中处理我发布的请求。

但是在处理控制器之前,您必须确保您的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 
} 

这应该工作,因为它是没有任何系列化相关代码。