error route handler not rendering ui properly with asp.net core 3.x razor pages
fingers10 opened this issue · 4 comments
I came across this awesome nuget package to handle and log exceptions in asp.net core. I tried this in my razor pages application and things worked fine. However when I try to use error routes to see the errors, the page is not getting displayed properly.
My Error Page:
public class ErrorModel : PageModel
{
public async Task OnGetAsync()
{
await ExceptionalMiddleware.HandleRequestAsync(HttpContext).ConfigureAwait(false);
}
}
Here is the error route screen print:
Here is the console log:
Here is my ConfigureServices
method:
services.AddExceptional(Configuration.GetSection("Exceptional"), options =>
{
options.UseExceptionalPageOnThrow = Env.IsDevelopment();
});
Here is my Configure
method:
app.UseExceptional();
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapRazorPages();
});
I even tried changing the middleware order by placing the app.UseExceptional()
after app.UseStaticFiles()
. But still it doesn't work. Please assist on why the assets are not getting loaded.
Hmmm, looks like a routing issue where the path is one off. Can please you show me the relative path of the page and the resources it's trying to load?
Here you go,
It works if I use it in controllers as shown below:
public class ExceptionsController : Controller
{
public async Task Index()
{
await ExceptionalMiddleware.HandleRequestAsync(HttpContext).ConfigureAwait(false);
}
}
But not with razor pages as shown below:
public class ErrorModel : PageModel
{
public async Task OnGetAsync()
{
await ExceptionalMiddleware.HandleRequestAsync(HttpContext).ConfigureAwait(false);
}
}
I think I encountered a similar issue but I had the error page hosted in a controller.
Not sure if something similar is happening in razor pages routing.
In my case, I was using a routeprefix and route attribute like so:
CSS and sub-routes wouldn't work.
Found the fix for my particlular issue here: #154
Note: two changes, added ~ to bypass routeprefix (was testing this and it didn't work but decided to keep this)
The change that worked was adding {/{path?}/{subPath?}
I also just ran into this, documenting the path definition requirements would help people get it running.