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
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.
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();
}
}
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.