我的应用托管在url
https://example.com/app/____
现在,我有一个自定义ExceptionFilter
,它负责异常后的重定向
public class CustomExceptionFilter : IExceptionFilter
{
public void OnException(ExceptionContext context)
{
var ex = context.Exception;
var c = (ControllerActionDescriptor)context.ActionDescriptor;
(...)
context.Result = new RedirectResult("/Error");
}
}
问题是它重定向到
https://example.com/Error/
但是我需要将其重定向到/app/Error
,所以我需要获取base path
的{{1}}
我尝试过
context.Result =新的RedirectResult(“错误”);
context.Result =新的RedirectResult(“ ./ Error”);
但是它们被添加到最后,所以看起来像
/app/
同时我的目标是
https://example.com/app/auth/Error
那么,如何在https://example.com/app/Error
中获得应用path base
?
答案 0 :(得分:0)
要访问基本路径,可以尝试context.HttpContext.Request.PathBase.Value
。
public class CustomExceptionFilter : IExceptionFilter
{
public void OnException(ExceptionContext context)
{
var basePath = context.HttpContext.Request.PathBase.Value;
context.Result = new RedirectResult($"{ basePath }/Error");
}
}