Ciao a tutti!!!
chiedo il vostro aiuto per chiarirmi un pò le idee.
Ho la classe User che oltre ad avere le informazioni basilari ha anche la classe Role che non è altro che la tipologia di utente
codice:
public class CreateUser
{
public string Name { get; set; }
public string Surname { get; set; }
public string Email { get; set; }
public string Password { get; set; }
public Role Role { get; set; }
public int RoleSelectedId { get; set; }
}
public class Role
{
public int Id { get; set; }
public string Name { get; set; }
}
nel controller in post vorrei mandare il model alla webapi ovviamente già compilato
codice:
[HttpPost]
public async Task<ActionResult> CreateUser(CreateUser item)
{
item.RoleSelected = new Role() { Id = item.RoleSelectedId };
var address = "http://localhost:53285/api/users/PostUser";
var stringContent = new StringContent(JsonConvert.SerializeObject(item), Encoding.UTF8, "application/json");
using (var client = new HttpClient())
{
HttpResponseMessage response = await client.PostAsync(address, stringContent);
response.EnsureSuccessStatusCode();
string resultContent = response.Content.ReadAsStringAsync().Result;
}
}
...e il controller delle webapi è il seguente
codice:
// POST: api/Users
[ResponseType(typeof(User))]
public async Task<IHttpActionResult> PostUser(User user)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
db.Users.Add(user);
await db.SaveChangesAsync();
return CreatedAtRoute("DefaultApi", new { id = user.Id }, user);
}
Il problema è che quando vado a vedere se le proprietà della classe User sono compilate la classe Role è nulla...
Sapete quale sia il problema?
Grazie dell'aiuto