我有这个ActionFilter
public class AppOfflineFilter : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (filterContext.ActionDescriptor.ActionName != "AppOffLine" &&
filterContext.HttpContext.Request.UserHostName != "127.0.0.1")
{
filterContext.Result = new RedirectToRouteResult(
new RouteValueDictionary(
new { action = "AppOffLine", Controller = "Home" }));
}
}
}
Run Code Online (Sandbox Code Playgroud)
它从起始页面起作用,它不在一个区域下,它不能在一个区域工作,因为它将重定向到/ Area/Home/Appoffline而不是/ Home/AppOffline
可以修复吗?
还有一种方法可以确定哪个控制器/动作重定向到使用泛型和强类型代码?
Dar*_*rov 56
尝试将area路由令牌分配给空字符串:
filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new {
action = "AppOffLine",
controller = "Home",
area = ""
}));
Run Code Online (Sandbox Code Playgroud)
jav*_*iry 13
你必须指定这样的区域:
public class AppOfflineFilter : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (filterContext.ActionDescriptor.ActionName != "AppOffLine" &&
filterContext.HttpContext.Request.UserHostName != "127.0.0.1")
{
filterContext.Result = new RedirectToRouteResult(
new RouteValueDictionary(
new { action = "AppOffLine", Controller = "Home",
area = "YourAreaName" })); //<<<<THIS
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果要重定向到非区域区域(如/Home/Index),请将' area'设置为空字符串; 喜欢:
area=""
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27576 次 |
| 最近记录: |