эту часть проекта я разрабатываю в asp.net web api и angular 7. Проблема, с которой я сталкиваюсь, заключается в том, что, когда я нажимаю на кнопку входа в систему для входа в систему, она показывает мне ошибку, которую я пропущу в разделе ошибок. Я делюсь html-файлом входа в систему .ts файл, а также функция входа в asp.net ... ошибка, с которой я сталкиваюсь, находится в файле login.ts в строке this.router.navigateByUrl ('login') или в той же строкено в функции onSubmit. я попытался это изменить на «/ app / user / login». пользователь - еще один компонент, в котором есть компонент входа.
<form class="modal-dialog" #form='ngForm' autocomplete="off" (submit)="onSubmit(form)" >
<div class="modal-body">
<div class="form-group">
<label>MobileNo</label>
<input class="form-control" #PhoneNumber="ngModel" name="PhoneNumber" [(ngModel)]="formModel.PhoneNumber" required placeholder="Mobile No">
</div>
<div class="form-group">
<label>Password</label>
<input type="password" class="form-control" #Password="ngModel" name="Password" [(ngModel)]="formModel.Password" required placeholder="password">
<div class="modal-footer">
<button type="submit" class="btn btn-danger light-btn" data-dismiss="modal">Sign In</button>
</div>
</form>
модуль маршрутизации приложения .ts
const routes: Routes = [
{path:'',redirectTo:'/app/home',pathMatch:'full'},
{path: 'app/home',component: HomeComponent},
{
path: 'user', component: UserComponent,
children: [
{ path: 'registration', component: RegistrationComponent },
{ path: 'login', component: LoginComponent }
]
}
];
.tsфайл
export class LoginComponent implements OnInit {
formModel ={
PhoneNumber :'',
Password:''
}
constructor(private service: UserService, private router: Router, private toastr: ToastrService) { }
ngOnInit() {
this.router.navigateByUrl('login');
}
onSubmit(form: NgForm) {
this.service.login(form.value).subscribe(
(res: any) => {
this.router.navigateByUrl('login');
},
err => {
if (err.status == 400)
this.toastr.error('Incorrect MobileNO or password.', 'Authentication failed.');
else
console.log(err);
});}}
method of login in services.ts
login(formData) {
return this.http.post(this.BaseURI + '/ApplicationUser/Login', formData);
}
web api function for login
[HttpPost]
[Route("Login")]
//POST : /api/ApplicationUser/Login
public async Task<IActionResult> Login(LoginModel model)
{
var user = await _userManager.FindByNameAsync(model.PhoneNumber);
if (user != null && await _userManager.CheckPasswordAsync(user, model.Password))
{
var tokenDescriptor = new SecurityTokenDescriptor
{
Subject = new ClaimsIdentity(new Claim[]
{
new Claim("UserID",user.Id.ToString())
}),
Expires = DateTime.UtcNow.AddDays(1),
SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_appSettings.JWT_Secret)), SecurityAlgorithms.HmacSha256Signature)
};
var tokenHandler = new JwtSecurityTokenHandler();
var securityToken = tokenHandler.CreateToken(tokenDescriptor);
var token = tokenHandler.WriteToken(securityToken);
return Ok(new { token });
}
else
return BadRequest(new { message = "Mobile NO or password is incorrect." });
}
}
core.js:6014 ERROR Error: Uncaught (in promise): Error: Cannot match any routes. URL Segment: 'login'
Error: Cannot match any routes. URL Segment: 'login'
at ApplyRedirects.noMatchError (router.js:4294)............