@@ -101,18 +101,28 @@ public async ValueTask<bool> HandleLocationChangingAsync(string uri, string? sta
101101 protected override void NavigateToCore ( string uri , NavigationOptions options )
102102 {
103103 Log . RequestingNavigation ( _logger , uri , options ) ;
104+
105+ if ( _jsRuntime == null )
106+ {
107+ var absoluteUriString = ToAbsoluteUri ( uri ) . AbsoluteUri ;
108+ if ( _throwNavigationException )
109+ {
110+ throw new NavigationException ( absoluteUriString ) ;
111+ }
112+ if ( _onNavigateTo == null )
113+ {
114+ throw new InvalidOperationException ( $ "'{ GetType ( ) . Name } ' method for endpoint-based navigation has not been initialized.") ;
115+ }
116+ _ = _onNavigateTo ( absoluteUriString ) ;
117+ return ;
118+ }
119+
104120 _ = PerformNavigationAsync ( ) ;
105121
106122 async Task PerformNavigationAsync ( )
107123 {
108124 try
109125 {
110- if ( _jsRuntime == null )
111- {
112- await NavigateWithEndpoint ( uri ) ;
113- return ;
114- }
115-
116126 var shouldContinueNavigation = await NotifyLocationChangingAsync ( uri , options . HistoryEntryState , false ) ;
117127
118128 if ( ! shouldContinueNavigation )
@@ -139,40 +149,31 @@ async Task PerformNavigationAsync()
139149 }
140150 }
141151
142- private async Task NavigateWithEndpoint ( string uri )
152+ /// <inheritdoc />
153+ public override void Refresh ( bool forceReload = false )
143154 {
144- var absoluteUriString = ToAbsoluteUri ( uri ) . AbsoluteUri ;
145- if ( _throwNavigationException )
146- {
147- throw new NavigationException ( absoluteUriString ) ;
148- }
149- else
155+ if ( _jsRuntime == null )
150156 {
157+ var absoluteUriString = ToAbsoluteUri ( Uri ) . AbsoluteUri ;
158+ if ( _throwNavigationException )
159+ {
160+ throw new NavigationException ( absoluteUriString ) ;
161+ }
151162 if ( _onNavigateTo == null )
152163 {
153164 throw new InvalidOperationException ( $ "'{ GetType ( ) . Name } ' method for endpoint-based navigation has not been initialized.") ;
154165 }
155- await _onNavigateTo ( absoluteUriString ) ;
166+ _ = _onNavigateTo ( absoluteUriString ) ;
167+ return ;
156168 }
157- }
158169
159- /// <inheritdoc />
160- public override void Refresh ( bool forceReload = false )
161- {
162170 _ = RefreshAsync ( ) ;
163171
164172 async Task RefreshAsync ( )
165173 {
166174 try
167175 {
168- if ( _jsRuntime == null )
169- {
170- await NavigateWithEndpoint ( Uri ) ;
171- }
172- else
173- {
174- await _jsRuntime . InvokeVoidAsync ( Interop . Refresh , forceReload ) ;
175- }
176+ await _jsRuntime . InvokeVoidAsync ( Interop . Refresh , forceReload ) ;
176177 }
177178 catch ( Exception ex )
178179 {
0 commit comments