加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-4 – .NET Web API Post Action返回空JSON

发布时间:2020-12-16 09:48:12 所属栏目:asp.Net 来源:网络整理
导读:我有一个继承自ControllerApi的控制器(MVC 4) public HttpResponseMessagelightUserInfo Post(LogOnModel model){ if (ModelState.IsValid) { if (Membership.ValidateUser(model.UserName,model.Password)) { MembershipUser user = Membership.GetUser(mod
我有一个继承自ControllerApi的控制器(MVC 4)

public HttpResponseMessage<lightUserInfo> Post(LogOnModel model)
{
    if (ModelState.IsValid)
    {
            if (Membership.ValidateUser(model.UserName,model.Password))
            {
                MembershipUser user = Membership.GetUser(model.UserName);
                var userinfo = new lightUserInfo(user);
                return new HttpResponseMessage<lightUserInfo>(userinfo);
            }
    }
 }

我可以看到对象userinfo填充正常,这将向浏览器返回200 OK …但内容只是空的json {}

这是CoffeeScript中的客户端ajax

$.ajax
  url: Meshable.rooturl + "/api/authentication"
  data:   JSON.stringify authenticationDetails    
  dataType: "json"
  type: "POST"
  contentType: 'application/json; charset=utf-8'
  error: (e) ->                     
  success: (data) ->
    #data comes in as empty {}

解决方法

不要认为POCO是最简单的情况,绝对可以毫无困难地序列化.你必须正确地标记它.包括

using System.Runtime.Serialization;

然后标记这样的类

[DataContract]
public class UserInfo
{
    [DataMember]
    public string mystr {get; set;}

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读