0
我有这个共同CUser类与RestSharp到MVC4 API服务器发布T得到空对象
public class CUser
{
public String Username { get; set; }
public String Password { get; set; }
}
然后,我有我的客户对这个代码,使用RestSharp
public void CreateUser()
{
RestRequest request = new RestRequest(Method.POST);
request.RequestFormat = DataFormat.Json;
request.Resource = "user/{cUser}";
CUser user = new CUser
{
Username = "Foo",
Password = "BarBaz"
};
request.AddParameter("cUser", user, ParameterType.UrlSegment);
client.PostAsync<int>(request, (response, handler) =>
{
System.Diagnostics.Debug.WriteLine(response.StatusDescription);
System.Diagnostics.Debug.WriteLine("id: " + response.Data);
});
}
而在此http路线我的Global.asax
routes.MapHttpRoute(
name: "CreateUser",
routeTemplate: "api/{controller}/{cUser}",
defaults: new
{
controller = "User",
action = "CreateUser",
cUser = RouteParameter.Optional
});
这servercode来处理它
public int CreateUser(CUser cUser)
{
User user = new User(cUser);
LoginManager manager = new LoginManager();
return manager.CreateUser(user);
}
但是我每次运行它时cUser的值都是空的(用户名和密码),所以我需要做一些restsharp来使它正确序列化?
如果我将网站更改为CreateUser(字符串用户名,字符串密码),它可以很好地工作,但如果将它更改为http://pastebin.com/AfsJhJyL,它仍会在服务器上的两个参数中都为空我可以发送对象 – Mech0z
您不能在URL中发送对象。这仅仅是HTTP支持的事情。您可以使用AddBody()在请求主体中将其作为JSON发送。 –
我不想发送对象本身,但我希望RestSharp和模型绑定器为我修复所有爵士乐,所以我只在一端提供一个对象,并在另一端提取该对象,然后将该addbody ? – Mech0z