5

यहां कोड है जिसका उपयोग मैं किसी ई-कॉमर्स वेबसाइट पर किसी उत्पाद पृष्ठ पर जाता हूं।क्या यह सी # एक्शन विधि कोड वास्तव में 301 रीडायरेक्ट को फायर कर रहा है?

public ActionResult Details(int id, string slug) 
{ 
    using (var productRepository = new EfProductRepository()) 
    { 
     var product = productRepository.FindById(id); 
     if (product == null) return RedirectToAction("Index", "Home"); 
     if (product.SeoTextSlug != slug) 
      return RedirectToAction("Details", new {id = product.ProductId, slug = product.SeoTextSlug}); 

     var model = new ProductDetailModel(); 

     //Load the product information. 
     model.Product.ProductId = product.ProductId; 
     model.Product.CoverImagePath = product.CoverImagePath; 
     model.Product.Name = product.Name; 
     model.Product.Tagline = product.Tagline; 
     model.Product.Price = product.Price; 
     model.Product.Stock = product.Stock; 
     model.Product.PieceCount = (int)product.PieceCount; 
     model.Product.SKU = product.SKU; 

     //Load the reviews for that product. 
     if (product.Reviews.Any()) 
     { 
      foreach (var review in product.Reviews) 
      { 
       model.Reviews.Add(new ReviewModel() 
       { 
        ReviewId = review.ReviewId, 
        AccountId = (int)review.AccountId, 
        Content = review.Content, 
        Location = review.Location, 
        ProductId = (int)review.ProductId, 
        PublishDate = review.PublishDate, 
        ReviewRatingId = (int)review.ReviewRatingId 
       }); 
      } 
     } 

     return View(model); 
    } 
} 

इस बिट में:

if (product.SeoTextSlug != slug) 
    return RedirectToAction("Details", new {id = product.ProductId, slug = product.SeoTextSlug}); 

मैं वास्तव में एक 301 रीडायरेक्ट सही ढंग से फायरिंग हूँ?

यकीन है कि यह काम कर रहा है जैसा कि मैं चाहता हूं, लेकिन मैं यह सुनिश्चित करना चाहता हूं कि मैं एक सही मानक HTTP परिणाम लौटा रहा हूं ताकि खोज इंजन इसका सही जवाब दे सकें।

+0

आप इसे एक ब्राउज़र के डेवलपर टूल का उपयोग करके इस बात की पुष्टि कर सकते हैं। नेटवर्क पर जाएं और HTTP अनुरोध देखें। – epignosisx

उत्तर

12

मुझे विश्वास है कि RedirectToAction रिटर्न 302 जबकि RedirectToActionPermanent रिटर्न 301

+0

तो मुझे अपने अंत में क्या करना है इसके बजाय 'RedirectToActionPermanent' का उपयोग करना सही है? –

+0

@ सर्जीओ: हाँ। एकमात्र शर्त यह है कि आपको यह सुनिश्चित करना होगा कि आप 302 के बजाय 301 चाहते हैं। –

संबंधित मुद्दे