2016-03-17 7 views
5

Ich habe ein Problem beim Debuggen meines MVC-Programms und ich möchte auf meine db namens "UserActivity" zugreifen. auf dem Browser, es sagen, dass "Die localhost Seite funktioniert nichtDie Seite "localhost" funktioniert nicht. localhost hat Sie zu oft umgeleitet

localhost umgeleitet Sie zu oft."

aber ohne den spezifischen Fehlerort zu zeigen.

hier ist mein UserActivtyController, GET/UserActivity/Index Code:

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

wirklich zu schätzen, wenn es jemanden, der etwas über dieses Problem wissen.

Dank
+0

Was ist der Wert von "returnUrl", wenn Sie auf das Problem stoßen? –

Antwort

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

Wenn die returnUrl Punkte auf die gleiche Aktion („UserActivity/Index“) es unendlich Umleitung Schleife schaffen. Wenn Sie die Anfrage an eine andere Aktion umleiten möchten, vergewissern Sie sich, dass Sie den korrekten Namen übergeben.

+0

Soll ich also den genauen Rückblick in "UserActivity/Index" lenken? – Botski

+0

Ja, Sie können explizit einen anderen Aktionsnamen wie RedirectToAction ("controller", "action", new {para, = value}); – Lesmian

0

Ich weiß nicht, was ist der Wert von redirectUrl, aber ich nehme an, es ist null. Ich nehme auch an, dass Ihre userActivity nicht null ist. So wird return RedirectToAction(returnUrl); aufgerufen.

Wenn Sie RedirectToAction(null) anrufen, leiten Sie tatsächlich auf die gleiche Aktion um und alles wird erneut wiederholt.

Ich frage mich auch, warum sollten Sie return View(userActivity);, wenn Ihre userActivitynull ist. Ich nehme an, Sie haben einen logischen Fehler.

1

Sie haben eine Schleife zurück Situation. Dies ist vergleichbar mit der endlosen While-Schleife. Um das Problem zu beheben, ändern Sie die Implementierung der Codeumleitung, um sie an eine Aktionsmethode umzuleiten. Beachten Sie, wie ich die Implementierung unten geändert habe. Dadurch wird das Problem behoben, dass "localhost Sie zu oft umgeleitet hat". Sie können es verbessern, um das Übergeben von Parametern usw. zu unterstützen, die für Ihre Situation geeignet sind. Werfen Sie auch einen Blick auf RedirectToAction mit Unterstützung für zusätzliche Parameter, wenn Sie Parameter an die Aktionsmethode übergeben möchten, wird dieser Link nützlich sein.

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