作为学习的一部分,我正在创建一个 Angular 表单并将其连接到 Web api,当我从表单发布数据时,它在 api 中为空值,我尝试添加 [Route("jsonbody ")] 但这不起作用,还在服务中尝试过 JSON.stringify(model)
但那也不起作用。
这就是我从 Angular 发布数据的方式
onSubmit(form: NgForm) {
this.registerobj.postUserData(this.model).subscribe()
}
模型类是
export class UserModel {
constructor(
public FirstName: string ='',
public LastName: string = '',
public Address: string = '',
public DateOfBirth: string = '',
public Gender: string = '',
public Language: string = '',
public Email: string = ''
) {}
}
从这样的服务中发布数据
postUserData(model: UserModel) {
return this.http.post<any>(`${this.serviceUrl}`, model)
}
.Net Core api Controller
[Route("api/[controller]")]
public class UserController : Controller
{
public UserController(IUser userItems)
{
UserItems = userItems;
}
public IUser UserItems { get; set; }
[HttpPost]
public IActionResult Insert(UserModel user)
{
UserRepository UserItems = new UserRepository();
try
{
if (user == null)
{
return BadRequest("Recieved a Bad request");
}
UserItems.Add(user);
return Ok();
}
catch(Exception e)
{
return StatusCode(500, e);
}
}
}
API 中的用户模型
public class UserModel
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Address { get; set; }
public string DateOfBirth { get; set; }
public string Gender { get; set; }
public string Language { get; set; }
public string Email { get; set; }
}
最佳答案
尝试像这样在正文中发送数据。
post(data) {
const body = {
"column_name1":"data1",
"column_name2":"data2",
};
const headers = new Headers(
{
'accept': 'application/json',
'content-type': 'application/json'
});
const options = new RequestOptions({ headers: headers });
return this.http.post(this.url, body, options).map((response: Response) => response.json());
关于javascript - 从 Angular 4 发布的数据在 .net core web api 中为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50503172/