2016-03-17 96 views
5

我調試我的MVC程序時遇到問題,我想訪問我的數據庫稱爲「UserActivity」。 在瀏覽器上,它認爲「本地主機頁面無法正常工作本地主機頁面無法正常工作。本地主機重定向你太多次

本地主機重定向你太多次。」

但未顯示具體的錯誤位置。

這裏是我的UserActivtyController,GET/UserActivity /指數代碼:

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

很感激,如果有任何人誰瞭解一下這個問題。謝謝

+0

當遇到問題時'returnUrl'的值是多少? –

回答

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

如果returnUrl指向相同的操作(「UserActivity/Index」)它將創建無限重定向循環。如果您想將請求重定向到其他操作,請確保您傳遞正確的名稱。

+0

那麼,我應該將精確的返回視圖指向「UserActivity/Index」嗎? – Botski

+0

是的,您可以顯式使用另一個動作名稱,如:RedirectToAction(「controller」,「action」,new {para,= value}); – Lesmian

0

我不知道什麼是redirectUrl的價值,但我想這是空。我也想你的userActivity不是null。所以return RedirectToAction(returnUrl);被調用。

當你調用RedirectToAction(null)你居然重定向到相同的動作,一切再次重複。

我也想知道爲什麼你需要return View(userActivity);當你userActivitynull。我想你有一個邏輯錯誤。

1

你有一個循環回來的情況。這類似於無盡的while循環。要修復它,請將您的代碼重定向實現更改爲重定向到操作方法。注意我是如何更改下面的實現的。這將解決「localhost重定向你太多次」的問題。你可以改進它,以支持傳入參數等適合你的情況。另外請看RedirectToAction以支持其他參數,如果您想將參數傳遞給action方法,這個鏈接將很有用。

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(); 
     } 
    } 
相關問題