4

このように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 {}
4

1 に答える 1

2

POCOが最も単純なケースであり、問​​題なく確実にシリアル化されると思い込まないでください。正しくマークする必要があります。含む

using System.Runtime.Serialization;

次に、そのようにクラスをマークします

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

}
于 2012-09-28T20:17:02.567 に答える