{"record":{"id":"dc50af56922b8125","repo":"dotnet/aspnetcore","slug":"the-type-gettype-fullname-does-not-support-sup","errorCode":null,"errorMessage":"The type {GetType().FullName} does not support supplying {nameof(NavigationOptions)}. To add support, that type should override {nameof(NavigateToCore)}(string uri, {nameof(NavigationOptions)} options).","messagePattern":"The type (.+?) does not support supplying (.+?)\\. To add support, that type should override (.+?)\\(string uri, (.+?) options\\)\\.","errorType":"exception","errorClass":"NotImplementedException","httpStatus":null,"severity":"error","filePath":"src/Components/Components/src/NavigationManager.cs","lineNumber":245,"sourceCode":"    /// </summary>\n    /// <param name=\"uri\">The destination URI. This can be absolute, or relative to the base URI\n    /// (as returned by <see cref=\"BaseUri\"/>).</param>\n    /// <param name=\"forceLoad\">If true, bypasses client-side routing and forces the browser to load the new page from the server, whether or not the URI would normally be handled by the client-side router.</param>\n    // The reason this overload exists and is virtual is for back-compat with < 6.0. Existing NavigationManager subclasses may\n    // already override this, so the framework needs to keep using it for the cases when only pre-6.0 options are used.\n    // However, for anyone implementing a new NavigationManager post-6.0, we don't want them to have to override this\n    // overload any more, so there's now a default implementation that calls the updated overload.\n    protected virtual void NavigateToCore([StringSyntax(StringSyntaxAttribute.Uri)] string uri, bool forceLoad)\n        => NavigateToCore(uri, new NavigationOptions { ForceLoad = forceLoad });\n\n    /// <summary>\n    /// Navigates to the specified URI.\n    /// </summary>\n    /// <param name=\"uri\">The destination URI. This can be absolute, or relative to the base URI\n    /// (as returned by <see cref=\"BaseUri\"/>).</param>\n    /// <param name=\"options\">Provides additional <see cref=\"NavigationOptions\"/>.</param>\n    protected virtual void NavigateToCore([StringSyntax(StringSyntaxAttribute.Uri)] string uri, NavigationOptions options) =>\n        throw new NotImplementedException($\"The type {GetType().FullName} does not support supplying {nameof(NavigationOptions)}. To add support, that type should override {nameof(NavigateToCore)}(string uri, {nameof(NavigationOptions)} options).\");\n\n    /// <summary>\n    /// Refreshes the current page via request to the server.\n    /// </summary>\n    /// <remarks>\n    /// If <paramref name=\"forceReload\"/> is <c>true</c>, a full page reload will always be performed.\n    /// Otherwise, the response HTML may be merged with the document's existing HTML to preserve client-side state,\n    /// falling back on a full page reload if necessary.\n    /// </remarks>\n    public virtual void Refresh(bool forceReload = false)\n        => NavigateTo(Uri, forceLoad: true, replace: true);\n\n    /// <summary>\n    /// Handles setting the NotFound state.\n    /// </summary>\n    public void NotFound() => NotFoundCore();\n\n    private void NotFoundCore()","sourceCodeStart":227,"sourceCodeEnd":263,"githubUrl":"https://github.com/dotnet/aspnetcore/blob/3600ca084e9c8b5f4174fc5e747f4c52d2100806/src/Components/Components/src/NavigationManager.cs#L227-L263","documentation":"The base NavigationManager.NavigateToCore(string, NavigationOptions) throws NotImplementedException by default. Custom subclasses written before .NET 6 that only override the older NavigateToCore(string, bool) overload will not support options-based navigation (including replace=true).","triggerScenarios":"A custom NavigationManager subclass overrides NavigateToCore(string, bool) but not NavigateToCore(string, NavigationOptions), then a caller passes NavigationOptions or replace=true.","commonSituations":"Legacy or third-party NavigationManager not updated for .NET 6+, a test double that omits the new overload, or an older library version in a newer app.","solutions":["Override NavigateToCore(string uri, NavigationOptions options) in the custom subclass and apply the options.","Update to a newer version of the library/NavigationManager implementation.","Avoid passing NavigationOptions or replace=true if the implementation does not support it."],"exampleFix":"// before\nprotected override void NavigateToCore(string uri, bool forceLoad) { ... }\n// after\nprotected override void NavigateToCore(string uri, NavigationOptions options)\n{\n    // apply options.ForceLoad, options.ReplaceHistoryEntry\n    ...\n}","handlingStrategy":"validation","validationCode":"// In a custom NavigationManager, override the options overload.\nprotected override void NavigateToCore(string uri, NavigationOptions options)\n{\n    // honor options.ForceLoad and options.ReplaceHistoryEntry\n    NavigateToCore(uri, options.ForceLoad);\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Override NavigateToCore(string, NavigationOptions) in any custom NavigationManager subclass.","Update third-party NavigationManager implementations to the latest version.","Avoid passing replace=true or NavigationOptions unless the subclass supports them."],"tags":["blazor","navigation","navigation-manager","not-implemented"],"backgroundTag":null,"analyzedSha":"3600ca084e9c8b5f4174fc5e747f4c52d2100806","analyzedAt":"2026-08-11T16:32:30.678Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}