web-dev-qa-db-fra.com

La page localhost ne fonctionne pas. localhost vous a redirigé trop de fois

Un problème est survenu lors du débogage de mon programme MVC et je souhaite accéder à ma base de données appelée "UserActivity" . Sur le navigateur, indiquant que "La page localhost ne fonctionne pas.

localhost vous a redirigé trop de fois. "

mais sans montrer l'emplacement d'erreur spécifique.

voici mon code UserActivtyController, GET/UserActivity/Index:

public class UserActivityController : BaseController
{
    //GET /UserActivity/Index
    public ActionResult Index(string returnUrl, int page = 1, string sort = "Id", string sortDir = "ASC", string filter = null)
    {
        String query = @"
            SELECT Id
            ,CreatedBy
            ,CreatedOn
            ,ModifiedBy
            ,ModifiedOn
            ,ContactId
            ,EntityName
            ,EntityId
            ,ActivityType
            ,ActivityStatus
            ,DueDate
            ,ActualEndDate
            ,MasqueradeOn
            ,MasqueradeBy 
        FROM UserActivity 
        -- ORDER BY CreatedOn DESC
        -- OFFSET (@PageNumber -1) * 30 ROWS
        -- FETCH NEXT 30 ROWS ONLY
            ";

        //string countQuery = @""

        List<UserActivityModels> userActivity = null;

        using (IDbConnection db = new MySqlConnection(ConfigurationManager.ConnectionStrings["CRMPORTALSQLCONN"].ConnectionString))
        {
            userActivity = (List<UserActivityModels>)db.Query<UserActivityModels>(query, new
            {
                @PageNumber = page,

            });

            /*ViewData["TotalCount"] = (int)db.ExecuteScalar(countQuery, new
            {
                @PageNumber = page,
                @Id = string.IsNullOrEmpty(filter) ? null : filter
            });
            */

            ViewData["PageSize"] = 30;
            ViewData["Filter"] = filter;
        }

        if (userActivity != null)
        {
            return RedirectToAction(returnUrl);
        }

        return View(userActivity);
    }
}

Vraiment apprécier si quelqu'un qui sait quelque chose sur ce problème. Merci

5
Botski
if (userActivity != null)
{
    return RedirectToAction(returnUrl);
}

Si returnUrl pointe sur la même action ("UserActivity/Index"), il créera une boucle de redirection infinie. Si vous souhaitez rediriger la demande vers une action différente, assurez-vous de transmettre le nom correct.

4
Lesmian

Vous avez une situation de rebouclage. Ceci est similaire à la boucle While infinie. Pour résoudre ce problème, modifiez votre implémentation de redirection de code afin de la rediriger vers une méthode d'action. Remarquez comment j'ai changé l'implémentation ci-dessous. Cela résoudra le problème "localhost vous a redirigé trop de fois". Vous pouvez l’améliorer pour prendre en charge le passage de paramètres, etc., adaptés à votre situation. Jetez également un œil à RedirectToAction avec la prise en charge de paramètres supplémentaires. Si vous souhaitez passer des paramètres à la méthode action, ce lien vous sera utile.

    public class UserActivityController : BaseController
    {
        //GET /UserActivity/Index
        public ActionResult Index(int page = 1, string sort = "Id", string sortDir = "ASC", string filter = null)
        {
            // Your other implementation here. I have removed it for brevity.

            if (userActivity != null)
            {
                return RedirectToAction("Index");
            }

            return View(userActivity);
        }

        public ActionResult Index()
        {

          return View();
        }
   }
1
Julius Depulla

Je ne sais pas quelle est la valeur de redirectUrl mais je suppose qu'elle est nulle. Je suppose aussi que votre userActivity n'est pas null. Donc, return RedirectToAction(returnUrl); est appelé.

Lorsque vous appelez RedirectToAction(null), vous redirigez réellement vers la même action et tout se répète.

Je me demande aussi pourquoi vous auriez besoin de return View(userActivity); lorsque votre userActivity est null. Je suppose que vous avez une erreur logique.

0
Ivan Gritsenko