【发布时间】:2013-03-10 01:20:00
【问题描述】:
我的 iphone 客户端将以下 json 发布到我的 mvc 服务。 当从 html 表单发布数据时,它会自动将表单数据转换为 UserModel 并将对象传递给我的 Create 方法,但是当我从 iphone 在我的请求正文中发送 JSON 字符串时,它会返回为 null。
从 JSON 到 Object 的转换最简洁的解决方案是什么。
我宁愿不为不同的客户端创建多个方法,所以我试图让相同的方法在 iphone 和 mvc 客户端上工作。
我的请求正文:
{
"firstName" : "Some Name",
"lastName" : "Some Last Name",
"age" : "age"
}
我的模型和操作结果
public class UserModel
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public int Age { get; set; }
}
[HttpPost]
public Create ActionResult(UserModel user)
{
// user is null
userStorage.create(user);
return SuccessResultForModel(user);
}
【问题讨论】:
-
只是为了确认一下,你想把点击控制器的用户对象从json转换?
-
您是否注册了 JsonValueProviderFactory(MVC 需要它才能解码 JSON 发布数据)?客户端是否指定了正确的 ContentType?请参阅stackoverflow.com/questions/4789481/… 了解其他要检查的事项(投票最多的答案有列表)。
-
那个 JSON 看起来无效,“年龄”后面有一个逗号?另外,年龄的值应该是一个int? (虽然我认为失败了,它将使用默认的 int 值 0)。另外,你的HttpPost方法说
Create Actionresult,不应该是ActionResult Create吗? -
@DaveA 不,我还没有注册,我会试一试并回复谢谢
标签: c# asp.net asp.net-mvc