Ich habe die folgenden Klassen:Web API + MVC 4 bezüglich Modell von komplexen Typen Bindung
public class State
{
public long Id { get; set; }
public string Name { get; set; }
public string Abbreviation { get; set; }
// Navigation Properties
public virtual Country Country { get; set; }
}
public class School
{
public long Id { get; set; }
public string Name { get; set; }
public string Abbreviation { get; set; }
// Navigation Properties
public virtual State State { get; set; }
}
und die folgenden Daten in meinem SQL Server
| School| | |
| Id | Name | State |
| 1 | UCLA | 1 |
+-------+-------------+---------------+
| State | | |
| Id | Name | Abbreviation |
| 1 | California | CA |
Ich bin versucht, einen Rest zu schaffen Controller, der eine Instanz der Schule mithilfe des HTTP-POST-Verbs mithilfe der Web-API erstellt.
public HttpResponseMessage<School> Post(School school)
{
SchoolService.CreateSchool(school);
var response = new HttpResponseMessage<School>(school, HttpStatusCode.Created);
string uri = Url.Route(null, new { id = school.Id });
response.Headers.Location = new Uri(Request.RequestUri, uri);
return response;
}
Web API bindet richtig meine Schulklasse Namen und Abkürzung Eigenschaften von meinem Web-Formular und ruft die POST-Methode in der Steuerung, aber es nicht weiß, was mit der State-Klasse zu tun. Ich bin mir nicht sicher, wie ich das einrichten soll. Ich hätte gerne ein Drop-down, das an die State-Klasse gebunden ist, und wenn ich die Erstellung der School einreiche, wird der korrekte Zustand aus meinen bestehenden Daten der neuen Schulinstanz zugewiesen.
Wie übermitteln Sie den Wert für die Klasse "Store"? können Sie die HTTP-Anforderungsdetails (Kopfzeilen, Formularfelder und Werte usw.) posten? – tugberk
Ich habe das gleiche Problem; Ich bin XML-Deserialisierung eines komplexen Typs in einem POST und es versucht, ModelBinders anstelle der Standard-XmlMediaTypeFormatter zu gehen. Es wird erwähnt, dass JSON dafür geeignet ist - verwenden Sie XML oder JSON Serialization? – Steve