Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Razor regression in ASP .NET Core 9.0 #58973

Open
1 task done
AlexBAV opened this issue Nov 15, 2024 · 5 comments
Open
1 task done

Razor regression in ASP .NET Core 9.0 #58973

AlexBAV opened this issue Nov 15, 2024 · 5 comments
Labels
area-mvc Includes: MVC, Actions and Controllers, Localization, CORS, most templates

Comments

@AlexBAV
Copy link

AlexBAV commented Nov 15, 2024

Is there an existing issue for this?

  • I have searched the existing issues

Describe the bug

The following razor snippet renders to nothing (is completely ignored??) in ASP.NET Core 9.0. Used to work correctly in previous version:

<script type="importmap">
	 {
		 "imports": {
		 }
	}
</script>

Looks like a bug in server-side script tag helper.

Expected Behavior

Should render "as is", without modifications

Steps To Reproduce

No response

Exceptions (if any)

No response

.NET Version

9.0.100

Anything else?

No response

@dotnet-issue-labeler dotnet-issue-labeler bot added the area-mvc Includes: MVC, Actions and Controllers, Localization, CORS, most templates label Nov 15, 2024
@ahazelwood
Copy link

I would like to upgrade to 9.0, however this is hitting me on a asp.net core mvc project upgrading from net8.0. Any suggestions for how to get it to render correctly would be greatly appreciated. I concur that it should not override anything but render it as written.

@AlexBAV
Copy link
Author

AlexBAV commented Nov 21, 2024

I currently use the following workaround for tag helpers that definitely should not be processed on a server side:

<!script type="importmap">...</!script>

<!tag> syntax is an official way to turn off tag helper processing.

However, I'm still sure that tag helper should not remove a tag if it cannot process it on a server side.

@ahazelwood
Copy link

ahazelwood commented Nov 21, 2024 via email

@AlexBAV
Copy link
Author

AlexBAV commented Nov 21, 2024

BTW, I suggest using this workaround for all "non-default" usages of script tag. It looks like they correctly recognize <script type="text/javascript">, <script type="module"> and <script>. All other usages should be guarded.

We, for example also had to implement a workaround for <script type="application/ld+json"> as it was also removed after upgrade to ASP.NET Core 9.0

@StevePy
Copy link

StevePy commented Nov 22, 2024

This one caught me as well, a bit sweaty when my importmap (part of _Layout.cshtml) wasn't rendered, considering the relatively good feeling I had combining razor views with ES6 modules. Fortunately the work-around with the <!script type="importmap"> works a treat, but I can't see how that should be an expected breaking change since it's kind of a necessity for module scripts which are recognized. Fortunately a small work-around and pretty much everything else with the switch to .Net 9 has been relatively painless.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-mvc Includes: MVC, Actions and Controllers, Localization, CORS, most templates
Projects
None yet
Development

No branches or pull requests

3 participants