5

以下是我在電子商務網站上訪問產品頁面時使用的代碼。這是C#操作方法代碼實際上發射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 2012-04-05 15:24:59

回答

12

我相信RedirectToAction返回302,而RedirectToActionPermanent收益301

+0

所以我所要做的就是使用'RedirectToActionPermanent'來代替,對嗎? – 2012-04-05 15:32:41

+0

@Sergio:是的。唯一的條件是你必須確定你想要301而不是302。 – 2012-04-05 15:44:39