【发布时间】:2016-08-01 01:30:00
【问题描述】:
我正在尝试将属性名称中带有点的 JSON 反序列化为键值格式。我正在使用内置的 ASP.NET MVC 模型绑定。它似乎将点解释为对象表示法,而不仅仅是键值对象。有没有办法让它正确反序列化为忽略点的键值?这很重要,因为数据需要以这种格式再次输出。
控制器动作
[HttpPost]
public ActionResult SaveProgress(int id, ProgressVM data)
{
// ProgressVM Data property has an item with key "prop" and a null value, nothing else
}
查看模型
public class ProgressVM
{
public int ID { get; set; }
public Dictionary<string, string> Data { get; set; }
}
JSON 示例
{
"ID": 123,
"Data": {
"prop.0.name": "value",
"prop.0.id": "value",
"prop.1.name": "value",
"prop.2.name": "value",
"prop.3.name": "value"
}
}
【问题讨论】:
-
那么问题出在哪里?发送数据 ckuent-server 或反之亦然?
-
将数据从客户端发送到服务器,在action方法中反序列化。
-
如果用逗号、连字符或分号代替点会怎样?
-
我曾想过更换点,但我希望有更好的解决方案让它正常工作,可能不得不这样做
-
您能否粘贴
SaveProgress操作调用的代码?我想您通过 AJAX 调用此操作。
标签: c# json asp.net-mvc