mirror of
https://github.com/aspnet/JavaScriptServices.git
synced 2026-02-07 08:34:07 +00:00
Angular 5 State Transfer does not work within ASP.NET Core SPA #312
Closed
opened 2025-08-09 17:15:48 +00:00 by fergalmoran
·
0 comments
No Branch/Tag Specified
master
rybrande/masterToSrc
pakrym/no-console-fb
release/2.2
pakrym/remove-obsole-api-usage
maestro/release/2.2
maestro/master
release/2.1
release/2.0
rybrande/MergeRelease21IntoDev
rel/2.0.0-extensions
angular-animations-example
fix-angular-material-publishing
rel/2.0.0-templates
httpwithstatetransfer-example
rel/2.0.0-preview2-templates
aspnet-webpack-react-2.x
angular4-prerender-data-example
version-1.x
angular2-lazy-loading-example
581-isomorphic-react-cookies-example
example-using-typescript-paths-for-494
v1.0.x
angular2-materialize-example
redux-typed-1-x
primeng-example
font-awesome-example
karma-testing-example
2.2.0
2.2.0-preview3
2.2.0-preview2
2.2.0-preview1
2.1.1
2.1.0
2.0.4
2.1.0-rc1-final
2.1.0-preview2-final
2.0.3
2.1.0-preview1-final
2.0.2
2.0.1
rel/2.0.0
rel/2.0.0-preview2
Labels
Clear labels
2 - Working
2 - Working
3 - Done
3 - Done
3 - Done
3 - Done
3 - Done
3 - Done
3 - Done
angular
angular
angular
angular
angular
bug
bug
bug
bug
bug
bug
bug
bug
bug
core
core
core
core
core
core
core
duplicate
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
external
external
P1
P1
P1
P1
P1
P1
P2
P2
P2
P2
P2
P2
P2
P2
P2
PRI: 1 - Required
react
react
task
task
up-for-grabs
up-for-grabs
up-for-grabs
waiting
waiting
waiting
waiting
No Label
Milestone
No items
No Milestone
Projects
Clear projects
No project
Assignees
fergalmoran
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github/JavaScriptServices#312
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @OleksandrKrutykh on 11/21/2017
Description
Angular 5 contains a new feature that allows sending a component state from the server to the browser (see this blog entry, section "Angular Universal State Transfer API and DOM Support"). This feature does not seem to work when an Angular app is hosted by ASP.NET Core SPA. The
TransferStateobject in the browser is empty, as if the server side didn't save anything there.Steps to Reproduce
As the official documentation for State Transfer is not available yet, the design document referenced in the pull request was used as the instruction.
A sample project for Visual Studio 2017 was created using the "MVC ASP.NET Core with Angular" project template and the following changes were made there:
AppComponentwere removed from the projectBrowserModule.withServerTransition(...)BrowserTransferStateModuleandServerTransferStateModulewere added to the imports of app.browser.module.ts and app.server.module.ts respectivelyplatformBrowserDynamic().bootstrapModule(AppModule)in ./ClientApp/boot.browser.ts was wrapped into a listener ofDOMContentLoadedevent. See this commentThe sample Visual Studio project: AngularTest.zip
The single Angular component in the project was modified to look like this:
On the server side, the component puts string "42" in the
TransferState. In the browser, the component tries to restore the string from theTransferState.Expected Result
When the application is started from within Visual Studio (in IIS Express), the web page briefly shows the text "Hello from server", which is then replaced with "Hello from client. Payload from server: 42".
Actual Result
The the web page shows the text "Hello from server", which is then replaced with "Hello from client. Payload from server: Not found!".
According to this section of the State Transfer design document, the server response should contain a
<script>tag with the serialized TransferState inside. But the actual response (see an example here:Response.txt) does not contain any
<script>tags except for the ones corresponding to the<script>tags in ./Views/Home/Index.cshtmlEnvironment