gpt4 book ai didi

ASP.NET 中的 Angular2 - 窗口未定义

转载 作者:行者123 更新时间:2023-12-02 17:09:32 26 4
gpt4 key购买 nike

我对 Angular2 还算陌生,而且对于将其合并到 ASP.NET Web 应用程序中也很陌生。当我尝试在 Angular2 ASP.NET Web 应用程序中以 Debug模式构建时,出现此错误。在 Release模式下构建时我遇到了同样的错误。

Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware[0]
An unhandled exception has occurred while executing the request
Microsoft.AspNetCore.NodeServices.HostingModels.NodeInvocationException: Prerendering failed because of error: ReferenceError: window is not defined
at D:\Projects\BryterOpsAdmin\BryterOpsAdmin\ClientApp\dist\vendor.js:89981:21
at Object.<anonymous> (D:\Projects\BryterOpsAdmin\BryterOpsAdmin\ClientApp\dist\vendor.js:90732:3)
at Object.<anonymous> (D:\Projects\BryterOpsAdmin\BryterOpsAdmin\ClientApp\dist\vendor.js:90734:30)
at __webpack_require__ (D:\Projects\BryterOpsAdmin\BryterOpsAdmin\ClientApp\dist\vendor.js:21:30)
at Object.<anonymous> (D:\Projects\BryterOpsAdmin\BryterOpsAdmin\ClientApp\dist\vendor.js:85385:1)
at Object.<anonymous> (D:\Projects\BryterOpsAdmin\BryterOpsAdmin\ClientApp\dist\vendor.js:85386:30)
at __webpack_require__ (D:\Projects\BryterOpsAdmin\BryterOpsAdmin\ClientApp\dist\vendor.js:21:30)
at Object.<anonymous> (D:\Projects\BryterOpsAdmin\BryterOpsAdmin\ClientApp\dist\main-server.js:20466:42)
at __webpack_require__ (D:\Projects\BryterOpsAdmin\BryterOpsAdmin\ClientApp\dist\main-server.js:20:30)
at Object.exports.REPLACEMENT_CHARACTER (D:\Projects\BryterOpsAdmin\BryterOpsAdmin\ClientApp\dist\main-server.js:398:79)
Current directory is: D:\Projects\BryterOpsAdmin\BryterOpsAdmin

我刚刚对 mvc 端的模型类做了一些无关紧要的更改,因此当我收到此错误时,我恢复了更改并重试。我仍然收到此错误。根据我的源代码控制,自上次正常工作以来绝对没有任何变化。什么可能导致此错误?我完全不知道该寻找什么。

我在 StackOverflow 中搜索了任何相关内容,但除了这个问题之外,我没有找到任何适用于 asp.net 的内容:Prerendering failed because of error: ReferenceError: window is not defined从未得到答复。

我尝试删除隐藏的 obj 和 bin 文件夹,但没有成功。

提前谢谢您。

更新:我尝试直接导航到我网站上的页面,结果非常成功。看来Angular2不再自动路由了。我仍在通过 MVC(“Home/Index”)访问 Home Controller 和 Home Index.cshtml View ,因此这似乎是 Angular2 问题。

这就是我的 angular2 路由的样子。

`

RouterModule.forRoot([
{ path: '', redirectTo: 'home', pathMatch: 'full' },
{ path: 'home', component: HomeComponent },
{ path: 'counter', component: CounterComponent },
{ path: 'fetch-data', component: FetchDataComponent },
{ path: 'bryterUsers', component: BryterUsersComponent },
{ path: 'adminUsers', component: AdminUsersComponent },
{ path: 'retailers', component: RetailersComponent },
{ path: 'providers', component: ProvidersComponent },
{ path: '**', redirectTo: 'home' }
])`

更新2:我现在无法再导航到任何其他页面。无论我走到哪里,我都会收到“窗口未定义”错误。我的代码没有任何改变。我完全被难住了。任何帮助将不胜感激。

最佳答案

我在这里找到了答案,虽然我不知道它是否是正确的答案:

Prerendering failed because of error: ReferenceError: Event is not defined with PrimeNG AutoComplete

这是他们所做的:

“我能够通过更改由 ASP.Net Core 模板生成的 Index.cshtml 页面中的 asp-prerender 标记来解决此问题。我在问题中错过了有关 ASP.Net Core 模板的要点。

我更改了标签

<app asp-prerender-module="ClientApp/dist/main-server">Loading...</app>

<app asp-ng2-prerender-module="ClientApp/dist/main-server">Loading...</app>

这解决了我的问题,但我不知道这是否是最佳实践。

关于ASP.NET 中的 Angular2 - 窗口未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46045736/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com