2016-03-17 14 views
5

मुझे अपने एमवीसी प्रोग्राम को डीबग करने में समस्या आई और मैं "यूजरएक्टिविटी" नामक मेरे डीबी में प्रवेश करना चाहता हूं। ब्राउज़र पर , यह कह रहा है कि "लोकलहोस्ट पेजलोकलहोस्ट पेज काम नहीं कर रहा है। लोकलहोस्ट ने आपको कई बार रीडायरेक्ट किया

लोकहोस्ट ने आपको कई बार पुनर्निर्देशित किया है।"

लेकिन विशिष्ट त्रुटि स्थान दिखाए बिना।

यहाँ मेरी UserActivtyController है, प्राप्त/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); 
} 

यदि वापसी यूआरएल एक ही क्रिया ("उपयोगकर्ता सक्रियता/सूचकांक") को इंगित करता है तो यह अनंत रीडायरेक्ट लूप बनाएगा। यदि आप विभिन्न कार्यों के अनुरोध को पुनर्निर्देशित करना चाहते हैं तो सुनिश्चित करें कि आप सही नाम पारित करें।

+0

तो, क्या मुझे सटीक वापसी दृश्य को "उपयोगकर्ता सक्रियता/अनुक्रमणिका" में निर्देशित करना चाहिए? – Botski

+0

हां आप स्पष्ट रूप से अन्य क्रिया नाम का उपयोग कर सकते हैं जैसे: RedirectToAction ("नियंत्रक", "क्रिया", नया {पैरा, = मान}); – Lesmian

0

मुझे नहीं पता कि redirectUrl का मूल्य क्या है लेकिन मुझे लगता है कि यह शून्य है। मुझे यह भी लगता है कि आपका userActivitynull नहीं है। तो return RedirectToAction(returnUrl); बुलाया जाता है।

जब आप RedirectToAction(null) पर कॉल करते हैं तो आप वास्तव में एक ही क्रिया पर रीडायरेक्ट करते हैं और सबकुछ फिर से दोहराता है।

मैं भी सोच रहा हूं कि आपको return View(userActivity); क्यों चाहिए जब आपका userActivitynull है। मुझे लगता है कि आपके पास तार्किक त्रुटि है।

1

आपके पास लूप बैक स्थिति है। लूप के दौरान यह अंतहीन के समान है। इसे ठीक करने के लिए एक क्रिया विधि पर रीडायरेक्ट करने के लिए अपने कोड पुनर्निर्देशन कार्यान्वयन को बदलें। ध्यान दें कि मैंने नीचे कार्यान्वयन कैसे बदल दिया है। यह समस्या को ठीक करेगा "लोकलहोस्ट ने आपको कई बार पुनर्निर्देशित किया"। आप अपनी स्थिति के लिए उपयुक्त पैरामीटर, आदि में गुजरने के समर्थन के लिए इसमें सुधार कर सकते हैं। अतिरिक्त पैरामीटर के लिए समर्थन के साथ RedirectToAction पर भी एक नज़र डालें, यदि आप क्रिया विधि में पैरामीटर पास करना चाहते हैं, तो यह लिंक उपयोगी होगा।

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(); 
     } 
    } 
संबंधित मुद्दे