Witam, zaczynam uczyć się tworzyć aplikacje w asp.net, w tym celu postanowiłem napisać prostą aplikację zapisującą do bazy danych podane ćwiczenie, liczbę powtórzeń i wagę. skorzystać do tego chciałbym z entity framework. Utworzyłem w htmlu 3 inputy i jeden przycisk. powiązałem inputy z polami klasy zrobionej w typescripcie a przycisk z poleceniem które teoretycznie powinno przesyłać dane do kontrolera i zapisywać w bazie. Tu pojawia się problem, ponieważ to nie działa, szukam odpowiedzi już 2 dni, jednak nie wychodzi mi to. Ustawienie breakpointu pokazuje mi, że kontroler nic nie dostaje, jednak nie mam pojęcia dlaczego. Czy ktoś mógł by mi pomóc? Dodaję kod kontrolera komponentu, htmla i klasy w ts.
komponent:
import { HttpClient } from '@angular/common/http';
import { Component, OnInit } from '@angular/core';
import { WorkoutDto } from '../Models/workout-dto.model';
@Component({
selector: 'app-workout',
templateUrl: './workout.component.html',
styleUrls: ['./workout.component.css']
})
export class WorkoutComponent implements OnInit {
workoutDto = new WorkoutDto();
constructor(private http: HttpClient) { }
ngOnInit() {
}
SendRequest() {
this.http.post("http://localhost:44362/" + "workout" + "/addworkout", this.workoutDto)
}
}
kontroler:
using Microsoft.AspNetCore.Mvc;
using WorkoutApp.Database;
using WorkoutApp.Database.Repositories;
using WorkoutApp.Dtos;
namespace WorkoutApp.Controllers
{
[ApiController]
[Route ("workout")]
public class WorkoutController : ControllerBase
{
private readonly IWorkoutRepository workoutRepository1;
public WorkoutController(IWorkoutRepository workoutRepository)
{
workoutRepository1 = workoutRepository;
}
[HttpPost]
[Route("addworkout")]
public IActionResult AddWorkout([FromBody] WorkoutDto workoutDto)
{
var workout = new WorkoutEntity()
{
WorkoutName = workoutDto.WorkoutName,
Count = workoutDto.Count,
Weight = workoutDto.Weight
};
var save = workoutRepository1.Add(workout);
return Ok(save);
}
}
}
klasa ts:
export class WorkoutDto {
WorkoutName: string;
Count: number;
Weight: number;
}
<p>Ćwiczenie</p>
<input [(ngModel)]="workoutDto.WorkoutName" />
<p>Obciążenie</p>
<input [(ngModel)]="workoutDto.Count" />
<p>Powtórzenia</p>
<input [(ngModel)]="workoutDto.Weight" />
<br />
<button (click)="SendRequest()">Zapisz</button>