【问题标题】:Is this C# action method code actually firing a 301 redirect?这个 C# 操作方法代码是否真的触发了 301 重定向?
【发布时间】:2012-04-19 08:36:49
【问题描述】:

这是我在有人访问我的电子商务网站上的产品页面时使用的代码。

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 结果,以便搜索引擎正确响应它。

【问题讨论】:

  • 您可以使用浏览器的开发者工具确认。转到网络并查看 HTTP 请求。

标签: c# asp.net-mvc-3 redirect http-status-code-301 actionmethod


【解决方案1】:

我相信RedirectToAction 返回 302 而RedirectToActionPermanent 返回 301。

【讨论】:

  • 所以我要做的就是改用RedirectToActionPermanent,对吗?
  • @Sergio:是的。唯一的条件是你必须确定你想要 301 而不是 302。
猜你喜欢
  • 2019-07-26
  • 1970-01-01
  • 2012-02-27
  • 2011-01-20
  • 2015-07-16
  • 2011-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多