Данные, отправленные из angular 4, становятся равными нулю в .net core web api - PullRequest
0 голосов
/ 24 мая 2018

В процессе обучения я работал над созданием угловой формы и подключением ее к веб-API. Когда я публикую данные из формы, в API-интерфейсе они получают нулевые значения, я попытался добавить [Route ("jsonbody")] но это не работает, также пытался JSON.stringify(model) в сервисе, но это также не работает.

Так я разместил данные из углового

onSubmit(form: NgForm) {
   this.registerobj.postUserData(this.model).subscribe()
 }

класса моделиis

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);
            }

        }
    }

UserModel в 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; }
}

1 Ответ

0 голосов
/ 24 мая 2018

попробуйте отправить данные в теле следующим образом.

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());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...