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