| File: Language\Extensions\DefaultMetadataIdentifierFeature.cs | Web Access |
| Project: src\roslyn\src\Razor\src\Compiler\Microsoft.CodeAnalysis.Razor.Compiler\src\Microsoft.CodeAnalysis.Razor.Compiler.csproj (Microsoft.CodeAnalysis.Razor.Compiler) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. #nullable disable using System; namespace Microsoft.AspNetCore.Razor.Language.Extensions; // The default scheme for identifiers matches MVC's view engine paths: // 1. Normalize backslash to forward-slash // 2. Always include leading slash // 3. Always include file name and extensions internal class DefaultMetadataIdentifierFeature : RazorEngineFeatureBase, IMetadataIdentifierFeature { public string GetIdentifier(RazorCodeDocument codeDocument, RazorSourceDocument sourceDocument) { if (codeDocument == null) { throw new ArgumentNullException(nameof(codeDocument)); } if (sourceDocument == null) { throw new ArgumentNullException(nameof(sourceDocument)); } if (string.IsNullOrEmpty(sourceDocument.RelativePath)) { return null; } var identifier = sourceDocument.RelativePath; identifier = identifier.Replace("\\", "/"); if (!identifier.StartsWith("/", StringComparison.Ordinal)) { identifier = "/" + identifier; } return identifier; } }