dotnet / razor

Compiler and tooling experience for Razor ASP.NET Core apps in Visual Studio, Visual Studio for Mac, and VS Code.
https://asp.net
MIT License
506 stars 196 forks source link

Razor parser fails to correctly parse escaped @ symbol in title attribute #7357

Closed NichUK closed 1 year ago

NichUK commented 2 years ago

Is there an existing issue for this?

Describe the bug

If an escaped @ symbol (@@) is entered in a title attribute (which should be legal) the parser gives the error:

"Component attributes do not support complex content (mixed C# and markup). Attribute: 'title', text: 'Position @AveragePrice'"

Expected Behavior

I would expect the parser to ignore an escaped @ symbol in a literal string

Steps To Reproduce

<div title="this should @@ work"></div>

Exceptions (if any)

No response

.NET Version

6.0.200-preview.22055.15

Anything else?

Microsoft Visual Studio Professional 2022 Version 17.1.0 Preview 4.0 VisualStudio.17.Preview/17.1.0-pre.4.0+32120.378 Microsoft .NET Framework Version 4.8.04161

Installed Version: Professional

Visual C++ 2022 00476-80000-00000-AA125 Microsoft Visual C++ 2022

.NET Core Debugging with WSL 1.0 .NET Core Debugging with WSL

ADL Tools Service Provider 1.0 This package contains services used by Data Lake tools

ASA Service Provider 1.0

ASP.NET and Web Tools 2019 17.1.351.16613 ASP.NET and Web Tools 2019

ASP.NET Web Frameworks and Tools 2019 17.1.351.16613 For additional information, visit https://www.asp.net/

Azure App Service Tools v3.0.0 17.1.351.16613 Azure App Service Tools v3.0.0

Azure Data Lake Tools for Visual Studio 2.6.5000.0 Microsoft Azure Data Lake Tools for Visual Studio

Azure Functions and Web Jobs Tools 17.1.351.16613 Azure Functions and Web Jobs Tools

Azure Stream Analytics Tools for Visual Studio 2.6.5000.0 Microsoft Azure Stream Analytics Tools for Visual Studio

C# Tools 4.1.0-3.22062.11+cc0d213b15fdda217ad888d269d19754fa556eb4 C# components used in the IDE. Depending on your project type and settings, a different version of the compiler may be used.

Common Azure Tools 1.10 Provides common services for use by Azure Mobile Services and Microsoft Azure Tools.

Cookiecutter 17.0.21344.1 Provides tools for finding, instantiating and customizing templates in cookiecutter format.

Extensibility Message Bus 1.2.6 (master@34d6af2) Provides common messaging-based MEF services for loosely coupled Visual Studio extension components communication and integration.

Fabric.DiagnosticEvents 1.0 Fabric Diagnostic Events

Microsoft Azure Hive Query Language Service 2.6.5000.0 Language service for Hive query

Microsoft Azure Service Fabric Tools for Visual Studio 17.0 Microsoft Azure Service Fabric Tools for Visual Studio

Microsoft Azure Stream Analytics Language Service 2.6.5000.0 Language service for Azure Stream Analytics

Microsoft Azure Tools for Visual Studio 2.9 Support for Azure Cloud Services projects

Microsoft JVM Debugger 1.0 Provides support for connecting the Visual Studio debugger to JDWP compatible Java Virtual Machines

Microsoft Library Manager 2.1.161+abc97ecc7d.RR Install client-side libraries easily to any web project

Microsoft MI-Based Debugger 1.0 Provides support for connecting Visual Studio to MI compatible debuggers

Microsoft Visual C++ Wizards 1.0 Microsoft Visual C++ Wizards

Microsoft Visual Studio Tools for Containers 1.2 Develop, run, validate your ASP.NET Core applications in the target environment. F5 your application directly into a container with debugging, or CTRL + F5 to edit & refresh your app without having to rebuild the container.

Microsoft Visual Studio VC Package 1.0 Microsoft Visual Studio VC Package

Mono Debugging for Visual Studio 17.1.10 (65f98f5) Support for debugging Mono processes with Visual Studio.

Node.js Tools 1.5.40105.1 Commit Hash:1822ee94b29c6cf748a19825f14cc26d30b0b871 Adds support for developing and debugging Node.js apps in Visual Studio

NuGet Package Manager 6.1.0 NuGet Package Manager in Visual Studio. For more information about NuGet, visit https://docs.nuget.org/

Office Developer Tools for Visual Studio 17.0.32009.00 Microsoft Office Developer Tools for Visual Studio

Python - Django support 17.0.21344.1 Provides templates and integration for the Django web framework.

Python - Profiling support 17.0.21344.1 Profiling support for Python projects.

Python with Pylance 17.0.21344.1 Provides IntelliSense, projects, templates, debugging, interactive windows, and other support for Python developers.

Razor (ASP.NET Core) 17.0.0.2206201+62a2c1d6162f828801565a7ca26d9d48b810a05b Provides languages services for ASP.NET Core Razor.

SQL Server Data Tools 17.0.62201.12090 Microsoft SQL Server Data Tools

ToolWindowHostedEditor 1.0 Hosting json editor into a tool window

TypeScript Tools 17.0.1229.2001 TypeScript Tools for Microsoft Visual Studio

Visual Basic Tools 4.1.0-3.22062.11+cc0d213b15fdda217ad888d269d19754fa556eb4 Visual Basic components used in the IDE. Depending on your project type and settings, a different version of the compiler may be used.

Visual F# Tools 17.1.0-beta.21610.4+07b5673e4f2fa7630e78abe37f16b372353a7242 Microsoft Visual F# Tools

Visual Studio Code Debug Adapter Host Package 1.0 Interop layer for hosting Visual Studio Code debug adapters in Visual Studio

Visual Studio Container Tools Extensions 1.0 View, manage, and diagnose containers within Visual Studio.

Visual Studio IntelliCode 2.2 AI-assisted development for Visual Studio.

Visual Studio Tools for Containers 1.0 Visual Studio Tools for Containers

Visual Studio Tools for Unity 17.1.0.0 Visual Studio Tools for Unity

VisualStudio.DeviceLog 1.0 Information about my package

VisualStudio.Foo 1.0 Information about my package

VisualStudio.Mac 1.0 Mac Extension for Visual Studio

Workflow Manager Tools 1.0 1.0 This package contains the necessary Visual Studio integration components for Workflow Manager.

Xamarin 17.1.0.298 (d17-1@9d7e60c) Visual Studio extension to enable development for Xamarin.iOS and Xamarin.Android.

Xamarin Designer 17.1.0.87 (remotes/origin/main@d50fb5635) Visual Studio extension to enable Xamarin Designer tools in Visual Studio.

Xamarin Templates 17.1.8 (590388a) Templates for building iOS, Android, and Windows apps with Xamarin and Xamarin.Forms.

Xamarin.Android SDK 12.2.0.2 (d17-1/e9c7503) Xamarin.Android Reference Assemblies and MSBuild support. Mono: a5d1934 Java.Interop: xamarin/java.interop/d17-1@7ac33610 ProGuard: Guardsquare/proguard/v7.0.1@912d149 SQLite: xamarin/sqlite/3.37.1@0893b3b Xamarin.Android Tools: xamarin/xamarin-android-tools/main@db125a7

Xamarin.iOS and Xamarin.Mac SDK 15.6.0.3 (caa899d24) Xamarin.iOS and Xamarin.Mac Reference Assemblies and MSBuild support.

ghost commented 2 years ago

We've moved this issue to the Backlog milestone. This means that it is not going to be worked on for the coming release. We will reassess the backlog following the current release and consider this item at that time. To learn more about our issue management process and to have better expectation regarding different types of issues you can read our Triage Process.

mkArtakMSFT commented 2 years ago

Thank you for filing this issue. In order for us to investigate this issue, please provide a minimalistic repro project (ideally a GitHub repo) that illustrates the problem.

HENRDS commented 2 years ago

I had the same problem with the placeholder attribute of InputText in Blazor.

Here's a repo with a minimal example: https://github.com/HENRDS/BlazorPlaceholderMarkupBug. The problem happens in this file

PS: I added @NichUK example to the repo too

chsienki commented 1 year ago

Appears that the original issue is fixed, but still happens when placed inside a component attribute. It's valid to just use email@placeholder.com in that case, so I think we're giving the correct error message in those cases.

Feel free to comment / re-open if you disagree. Thanks!

chsienki commented 1 year ago

Closing as fixed + by design