Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 2无法使用asp.net MVC 5 Web Api调用自定义Web Api_Asp.net_Angular_Asp.net Web Api2_Angular2 Routing - Fatal编程技术网

Angular 2无法使用asp.net MVC 5 Web Api调用自定义Web Api

Angular 2无法使用asp.net MVC 5 Web Api调用自定义Web Api,asp.net,angular,asp.net-web-api2,angular2-routing,Asp.net,Angular,Asp.net Web Api2,Angular2 Routing,在asp.net MVC 5中调用自定义Web Api时遇到问题。以下是我的Web Api控制器和angular js 2代码 [Route("api/email/detail/{id:int}"), HttpGet] public async Task<IHttpActionResult> EmailDetail(int id) { return Ok(); } email.detail.ts的代码如下: import { ModuleWithProviders

在asp.net MVC 5中调用自定义Web Api时遇到问题。以下是我的Web Api控制器和angular js 2代码

 [Route("api/email/detail/{id:int}"), HttpGet]
 public async Task<IHttpActionResult> EmailDetail(int id)
 {
     return Ok();
 }
email.detail.ts的代码如下:

import { ModuleWithProviders } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { HomeComponent } from './components/home.component';
import { UserComponent } from './components/user.component';
import { EmailComponent } from './components/email.component';
import { EmailDetail } from './components/email.detail';

const appRoutes: Routes = [
    { path: 'App/Template', redirectTo: 'home', pathMatch: 'full' },
    { path: 'home', component: HomeComponent },
    { path: 'user', component: UserComponent },
    { path: 'detail/:id', component: EmailDetail },
    { path: 'email', component: EmailComponent },
    //{ path: 'detail', component: EmailDetail},
];

export const routing: ModuleWithProviders = RouterModule.forRoot(appRoutes);
import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { UserService } from '../Service/user.service';
import { IEmail } from '../Models/user';

import { Http, Response, Headers, RequestOptions } from '@angular/http';


@Component({
    templateUrl: 'About/Template/Detail'
})

export class EmailDetail implements OnInit {
    private emailId: number;
    private email: IEmail

    constructor(private _userService: UserService, private _http: Http, 
    private route: ActivatedRoute) {

    }

    ngOnInit(): void {

        this._http.get("api/email/detail/1992").subscribe(data => {
            // Read the result field from the JSON response.
        });

    }
}
我在控制台中得到的错误如下:

useHash现在解决了这个问题,工作正常。

尝试将
RouterModule.forRoot(appRoutes)
更改为
RouterModule.forRoot(appRoutes,{useHash:true})
app.routing.ts
中是否应该有2次详细信息?在angular中,您的基本url在哪里?在自定义api路由之前,没有任何“细节”被预先设置,以使其不应发生。另外,我的基本url代码是:@NgModule({imports:[BrowserModule,ReactiveFormsModule,HttpModule,routing,Ng2Bs3ModalModule],声明:[AppComponent,UserComponent,HomeComponent,EmailComponent,EmailDetail],providers:[{provide:APP_base_HREF,useValue:'/',UserService],bootstrap:[AppComponent]})useHash解决了这个问题。