Ho un semplice controller Web API 4 su qualche codice del database legacy. L'entità come in questo modo:Parametro per il Post Web API 4 metodo nullo quando chiamato da Fiddler con JSON corpo
public class Employee
{
public string EmploymentStatus { get; set; }
public string CompanyCode { get; set; }
public string Division { get; set; }
public string OrgLevel1Code { get; set; }
public string OrgLevel2Code { get; set; }
public string OrgLevel3 { get; set; }
public string StoreName { get; set; }
public string EmployeeNumber { get; set; }
public string EmployeeFirstName { get; set; }
public string EmployeeMiddleInitial { get; set; }
public string EmployeeLastName { get; set; }
public string EmailAddress { get; set; }
public string JobCode { get; set; }
public string DateInJob { get; set; }
public string OriginalHire { get; set; }
}
Il metodo è simile al seguente:
public HttpResponseMessage PostEmployee(Employee item)
{
DataHelpers.AddUser(item.CompanyCode, item.Division, item.OrgLevel1Code, item.OrgLevel2Code, item.OrgLevel3, item.EmployeeFirstName, item.EmployeeMiddleInitial, item.EmployeeLastName, item.EmailAddress, item.JobCode, item.OriginalHire);
var response = Request.CreateResponse<Employee>(HttpStatusCode.Created, item);
string uri = Url.Link("DefaultApi", new { id = item.EmployeeNumber });
response.Headers.Location = new Uri(uri);
return response;
}
Quando ho post attraverso Fiddler in questo modo:
POST /api/identity HTTP/1.1
User-Agent: Fiddler
Host: localhost:1421
Content-Length: 382
contentType: "application/json; charset=utf-8"
dataType: 'json'
{
"employmentStatus":"zzz",
"companyCode":"Titlemax",
"division":"bbb",
"orgLevel1Code":"ccc",
"orgLevel2Code":"ddd",
"orgLevel3":"eee",
"storeName":"fff",
"employeeNumber":"12343",
"employeeFirstName":"Bill",
"employeeMiddleInitial":"A",
"employeeLastName":"sempf",
"emailAddress":"[email protected]",
"jobCode":"GM",
"dateInJob":"8/7/2005",
"originalHire":"8/7/2005"
}
ottengo un'eccezione .NET e il parametro item è nullo.
{"Message":"An error has occurred.","ExceptionMessage":"Object reference not set to an instance of an object.","ExceptionType":"System.NullReferenceException"}
Che cosa mi manca? Sono nuovo dell'API Web. Grazie in anticipo.
Si potrebbe eseguire il debug nel vostro metodo 'PostEmployee' per vedere quale codice linea di tiro questa eccezione? –
Il parametro item è null. Quindi l'eccezione si verifica quando la faccio riferimento. –