javascript - 从 Angular 4 发布的数据在 .net core web api 中为 null

标签 javascript c# json angular .net-core

作为学习的一部分,我正在创建一个 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/

相关文章:

ios - 尝试使用 Alamofire 在 Swift 3 中解析 JSON

javascript - 删除背景形状轮廓并创建列空间(CSS)

javascript - NewtonSoft JSON 转换器序列化但执行起来很奇怪。怎么修?

javascript - 如何从更改组件值的 Svelte 组件导出函数?

c# - 确定 XDocument 中的元素

c# - WinRT 中 Metro 应用程序的 XMPP 库

c# - 如何从 XML 文件中获取属性?

json - 有没有办法在解码前验证 JSON?

javascript - 使 jQuery 分页/排序适用于同一页面上的多个表

java - 使用 GSON 反序列化 java.sql.Date 错误