我在使用asp.NET(2.1)和Angular 5构建用于IE的Web应用程序时遇到了一个奇怪的问题。在ngOnInit()
( home.components.ts )上,我正在调用服务以链接到控制器,该控制器正在从数据库中获取一些数据。到目前为止,这仍然可以正常工作...第二个组件( create.component.ts )正在数据库中创建/编辑实体。使用“保存”按钮保存更改还将重定向到 home.component ,它现在应该获取所有更新并将其可视化。使用Chrome可以完美地运行,但是使用IE时, home.compenent.html 不会从数据库获取更新的更改,而是显示旧的更改。奇怪的是:打开调试器(F12)将解决该问题并更新所有更改(例如chrome)。
放置断点告诉我,它总是在 home.component.ts 中调用ngOnInit()
,这正像预期的那样直接指向service.ts并调用getUser()
方法。该方法应直接指向api控制器中的方法,但不是。只有刷新页面后,它才能获取所有更新(或者说,如果调试器处于打开状态)。我想到了IE中的缓存问题,但是由于它根本没有链接到后端,因此我不确定。谢谢
User.service.ts:
@Injectable()
export class UserService {
private apiUrl = 'api/User';
myAppUrl: string = "";
private options = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };
constructor(private httpClient: HttpClient) {
}
getUser(): Observable<User> {
// Breakpoints are getting to this point but the following code is not directing to the method in the backed.
return this.httpClient.get<User>(this.apiUrl + '/Index', this.options)
.catch (this.errorHandler);
}
UserController.cs
[Produces("application/json")]
public class UserController : Controller
{
UserDataAccessLayer objuser = new UserDataAccessLayer();
[HttpGet]
[Route("api/User/Index")]
public IEnumerable<User> Get()
{
return objuser.GetAllUsers();
}
.
.
.