【发布时间】:2014-06-23 19:42:38
【问题描述】:
MVC3 带有 JsonValueProviderFactory() 开箱即用,这对于将传入的 JSON 绑定到模型非常方便。不幸的是,我不知道如何设置名称与传入 JSON 不同的模型合同。例如:
[DataContract(Name = "session")]
public class FacebookSession
{
[DataMember(Name = "access_token")]
public string AccessToken { get; set; }
[DataMember(Name = "expires")]
public int? Expires { get; set; }
[DataMember(Name = "secret")]
public string Secret { get; set; }
[DataMember(Name = "session_key")]
public string Sessionkey { get; set; }
[DataMember(Name = "sig")]
public string Signature { get; set; }
[DataMember(Name = "uid")]
public string UserId { get; set; }
}
当传入代表 facebook 会话的 json 对象时,属性 secret 和 expires 会正确绑定,但其余的不会,因为属性名称与 json 键名称不同。我希望 datacontract 序列化程序会尝试绑定到属性中提供的名称,但事实并非如此。有没有人有任何解决方法的建议?
编辑
我将如何使用此模型的示例:
public ActionResult Log(int? custId, FacebookSession response)
{
ViewBag.Id = response.UserId;
return View();
}
【问题讨论】:
标签: c# asp.net-mvc-3 datacontractserializer modelbinders model-binding