C# 如何修复';localhost指导您的次数太多了;MVC中的错误
我有门户网站,当用户登录系统。我正在检查电子邮件和电话号码。如果数据库中不存在。我想重定向到“ProfilView”页面并完成电子邮件和电话字段。但我遇到了一个错误“localhost指示您的次数太多了。” 这个方法FilterAttribute,我把它放在BaseController上 这是我的BaseController,我有一个属性C# 如何修复';localhost指导您的次数太多了;MVC中的错误,c#,asp.net-mvc,C#,Asp.net Mvc,我有门户网站,当用户登录系统。我正在检查电子邮件和电话号码。如果数据库中不存在。我想重定向到“ProfilView”页面并完成电子邮件和电话字段。但我遇到了一个错误“localhost指示您的次数太多了。” 这个方法FilterAttribute,我把它放在BaseController上 这是我的BaseController,我有一个属性 [ContactInfo] public class BaseController : Controller 这是我的属性 public class Con
[ContactInfo]
public class BaseController : Controller
这是我的属性
public class ContactInfoAttribute : ActionFilterAttribute {
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (filterContext == null || filterContext.HttpContext == null || filterContext.HttpContext.Request == null)
return;
var workContext = EngineContext.Current.Resolve<IWorkContext>();
var customer = workContext.CurrentUser;
if (customer != null)
{
if (customer.PhoneNumber == null || customer.Email == null)
{
RouteValueDictionary redirectTargetDictionary = new RouteValueDictionary();
redirectTargetDictionary.Add("action", "ProfileView");
redirectTargetDictionary.Add("controller", "Account");
filterContext.Result = new RedirectToRouteResult(redirectTargetDictionary);
}
}
base.OnActionExecuting(filterContext);
}
}
公共类ContactInfoAttribute:ActionFilterAttribute{
公共覆盖无效OnActionExecuting(ActionExecutingContext filterContext)
{
if(filterContext==null | | filterContext.HttpContext==null | | filterContext.HttpContext.Request==null)
返回;
var workContext=EngineContext.Current.Resolve();
var customer=workContext.CurrentUser;
如果(客户!=null)
{
if(customer.PhoneNumber==null | | customer.Email==null)
{
RouteValueDictionary redirectTargetDictionary=新建RouteValueDictionary();
redirectTargetDictionary.Add(“action”、“ProfileView”);
redirectTargetDictionary.Add(“控制器”、“帐户”);
filterContext.Result=新的RedirectToRouteResult(redirectTargetDictionary);
}
}
base.OnActionExecuting(filterContext);
}
}
您的代码导致递归重定向。因此,从过滤器中的重定向逻辑中排除ProfileView
操作
public class ContactInfoAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (filterContext == null || filterContext.HttpContext == null || filterContext.HttpContext.Request == null ||
(filterContext.ActionDescriptor.ActionName == "ProfileView" && filterContext.ActionDescriptor.ControllerDescriptor.ControllerName == "Account"))
return;
var workContext = EngineContext.Current.Resolve<IWorkContext>();
var customer = workContext.CurrentUser;
if (customer != null)
{
if (customer.PhoneNumber == null || customer.Email == null)
{
RouteValueDictionary redirectTargetDictionary = new RouteValueDictionary();
redirectTargetDictionary.Add("action", "ProfileView");
redirectTargetDictionary.Add("controller", "Account");
filterContext.Result = new RedirectToRouteResult(redirectTargetDictionary);
}
}
base.OnActionExecuting(filterContext);
}
}
公共类ContactInfoAttribute:ActionFilterAttribute
{
公共覆盖无效OnActionExecuting(ActionExecutingContext filterContext)
{
如果(filterContext==null | | filterContext.HttpContext==null | | filterContext.HttpContext.Request==null||
(filterContext.ActionDescriptor.ActionName==“ProfileView”&&filterContext.ActionDescriptor.ControllerDescriptor.ControllerName==“Account”))
返回;
var workContext=EngineContext.Current.Resolve();
var customer=workContext.CurrentUser;
如果(客户!=null)
{
if(customer.PhoneNumber==null | | customer.Email==null)
{
RouteValueDictionary redirectTargetDictionary=新建RouteValueDictionary();
redirectTargetDictionary.Add(“action”、“ProfileView”);
redirectTargetDictionary.Add(“控制器”、“帐户”);
filterContext.Result=新的RedirectToRouteResult(redirectTargetDictionary);
}
}
base.OnActionExecuting(filterContext);
}
}
您的重定向导致重定向(导致重定向(导致重定向))等。。。你应该只需要一个重定向,对吗?加载Chrome。转到开发人员工具,网络选项卡。单击保存日志
。加载页面。现在您将看到重定向。我将推测AccountController
继承自BaseController
,而它不应该继承。