Mam klasy:
[HttpPost]
public IActionResult Post(CmsWebsite cmsWebsite)
{
using (var context = new ApplicationContext())
{
context.CmsWebsite.Add(cmsWebsite);
context.SaveChanges();
}
return Created($"api/Values/{cmsWebsite}", cmsWebsite);
}
public partial class CmsWebsite
{
public CmsWebsite()
{
CmsWebsiteDomain = new HashSet<CmsWebsiteDomain>();
}
public int Id { get; set; }
public DateTime? CreatedAt { get; set; }
public int? CreatedBy { get; set; }
public string Description { get; set; }
public string Name { get; set; }
public string SeoDescription { get; set; }
public string SeoKeywords { get; set; }
public string SeoTitle { get; set; }
public DateTime? UpdatedAt { get; set; }
public int? UpdatedBy { get; set; }
public virtual ICollection<CmsWebsiteDomain> CmsWebsiteDomain { get; set; }
}
public partial class CmsWebsiteDomain
{
public int Id { get; set; }
public int CmsWebsiteId { get; set; }
public string Domain { get; set; }
public virtual CmsWebsite CmsWebsite { get; set; }
}
Po czy wysyłam request postem:
HTTP POST http://localhost:50618/api/values?name=asdfasf&cmsWebsiteDomain[0].domain=aaaa&cmsWebsiteDomain[1].domain=fffff
Content-Type: application/json
Host: localhost:50618
0
Response Status: 0 () - dlaczego? powinien być 201 Created.
Inna próba tym razem bez zagnieżdżenia w postaci cmsWebsiteDomain:
HTTP POST http://localhost:50618/api/values?name=asdfasf
Content-Type: application/json
Host: localhost:50618
201 Created
Location: api/Values/WebApp.Model.CmsWebsite
Date: Tue, 25 Apr 2017 22:28:01 GMT
X-SourceFiles: =?UTF-8?B?QzpcVXNlcnNcVXNlclxkb2N1bWVudHNcdmlzdWFsIHN0dWRpbyAyMDE3XFByb2plY3RzXFdlYkFwcFxXZWJBcHBcYXBpXHZhbHVlcw==?=
Server: Kestrel
X-Powered-By: ASP.NET
Transfer-Encoding: chunked
Content-Type: application/json; charset=utf-8
{"id":25,"createdAt":null,"createdBy":null,"description":null,"name":"asdfasf","seoDescription":null,"seoKeywords":null,"seoTitle":null,"updatedAt":null,"updatedBy":null,"cmsWebsiteDomain":[]}
W tym przypadku jest ok.
Kolejny test tym razem bez zapisywania do bazy danych:
HTTP POST http://localhost:50618/api/values?name=asdfasf&cmsWebsiteDomain[0].domain=aaaa&cmsWebsiteDomain[1].domain=fffff
Content-Type: application/json
Host: localhost:50618
201 Created
Location: api/Values/WebApp.Model.CmsWebsite
Date: Tue, 25 Apr 2017 22:31:36 GMT
X-SourceFiles: =?UTF-8?B?QzpcVXNlcnNcVXNlclxkb2N1bWVudHNcdmlzdWFsIHN0dWRpbyAyMDE3XFByb2plY3RzXFdlYkFwcFxXZWJBcHBcYXBpXHZhbHVlcw==?=
Server: Kestrel
X-Powered-By: ASP.NET
Transfer-Encoding: chunked
Content-Type: application/json; charset=utf-8
{"id":0,"createdAt":null,"createdBy":null,"description":null,"name":"asdfasf","seoDescription":null,"seoKeywords":null,"seoTitle":null,"updatedAt":null,"updatedBy":null,"cmsWebsiteDomain":[{"id":0,"cmsWebsiteId":0,"domain":"aaaa","cmsWebsite":null},{"id":0,"cmsWebsiteId":0,"domain":"fffff","cmsWebsite":null}]}
Również wynik jest ok.
Dodam do tego, że jeśli mam przypadek z odwołaniem do bazy danych to zapisywanie do bazy za każdym razem działa dobrze.
Proszę o pomoc.