@@ -51,6 +51,11 @@ public class AspNetRequestUrlRenderer : AspNetLayoutRendererBase
5151 /// </summary>
5252 public bool IncludeScheme { get ; set ; } = true ;
5353
54+ /// <summary>
55+ /// To specify whether to exclude / include the url-path. Default is true.
56+ /// </summary>
57+ public bool IncludePath { get ; set ; } = true ;
58+
5459#if ASP_NET_CORE
5560
5661 /// <summary>
@@ -107,8 +112,15 @@ private void RenderUrl(HttpRequestBase httpRequest, StringBuilder builder)
107112 builder . Append ( url . Port ) ;
108113 }
109114
110- var pathAndQuery = IncludeQueryString ? url . PathAndQuery : url . AbsolutePath ;
111- builder . Append ( pathAndQuery ) ;
115+ if ( IncludePath )
116+ {
117+ var pathAndQuery = IncludeQueryString ? url . PathAndQuery : url . AbsolutePath ;
118+ builder . Append ( pathAndQuery ) ;
119+ }
120+ else if ( IncludeQueryString )
121+ {
122+ builder . Append ( url . Query ) ;
123+ }
112124 }
113125#else
114126 private void RenderUrl ( HttpRequest httpRequest , StringBuilder builder )
@@ -130,20 +142,26 @@ private void RenderUrl(HttpRequest httpRequest, StringBuilder builder)
130142 builder . Append ( httpRequest . Host . Port . Value ) ;
131143 }
132144
133- IHttpRequestFeature httpRequestFeature ;
134- if ( UseRawTarget && ( httpRequestFeature = httpRequest . HttpContext . Features . Get < IHttpRequestFeature > ( ) ) != null )
145+ if ( IncludePath )
135146 {
136- builder . Append ( httpRequestFeature . RawTarget ) ;
137- }
138- else
139- {
140- builder . Append ( httpRequest . PathBase . ToUriComponent ( ) ) ;
141- builder . Append ( httpRequest . Path . ToUriComponent ( ) ) ;
142-
143- if ( IncludeQueryString )
147+ IHttpRequestFeature httpRequestFeature ;
148+ if ( UseRawTarget && ( httpRequestFeature = httpRequest . HttpContext . Features . Get < IHttpRequestFeature > ( ) ) != null )
144149 {
145- builder . Append ( httpRequest . QueryString . Value ) ;
150+ builder . Append ( httpRequestFeature . RawTarget ) ;
146151 }
152+ else
153+ {
154+ builder . Append ( ( httpRequest . PathBase + httpRequest . Path ) . ToUriComponent ( ) ) ;
155+
156+ if ( IncludeQueryString )
157+ {
158+ builder . Append ( httpRequest . QueryString . Value ) ;
159+ }
160+ }
161+ }
162+ else if ( IncludeQueryString )
163+ {
164+ builder . Append ( httpRequest . QueryString . Value ) ;
147165 }
148166 }
149167#endif
0 commit comments