如何将对象转换为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模型 - 视图 - 控制器。你的问题是关于如何在控制器中处理我发布的请求。
但是在处理控制器之前,您必须确保您的Model
和View
的设计符合此模式。
看起来您并未使用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
}
这应该工作,因为它是没有任何系列化相关代码。