Request.Url.Host返回错误的主机?

时间:2016-06-01 21:53:48

标签: asp.net-mvc umbraco7

我有一个Umbraco 7个实例2 root nodes。一个节点指向stage.sctflash.com,另一个节点指向stage.bullydog.com。当我导航到http://stage.bullydog.com/Products/accessories/podmount时,Request.Url.Hoststage.bullydog.com。现在,如果我打开另一个标签并转到http://stage.sctflash.com/Products/accessories/podmount,则Request.Url.Host可能是stage.sctflash.com,但有时,它只会更改为stage.sctflash.com

我注意到的一件奇怪的事情是,如果我在Umbraco中查看配件节点,我发现它的父节点为stage.bullydog.com,无论我是stage.sctflash.com还是{stage.bullydog.com 1}}

我正在使用Request.Url.Host来确定数据库的查询参数。我基本上得到这样的品牌:

if(Request.Url.Host == "stage.sctflash.com")
return "sct";
else
return bullydog";

因此,如果Request.Url.Host间歇性错误,我会得到错误的查询参数。

要查看此操作,如果您转到http://stage.sctflash.com/Products/accessories/podmount,您会看到一个SCT徽标,然后转到http://stage.bullydog.com/Products/accessories/podmount,您会看到一个欺负狗徽标。这些徽标由Request.Url.Host驱动。如果您刷新http://stage.sctflash.com/Products/accessories/podmount,则很可能会立即看到Bully Dog徽标,因为Request.Url.Host现在是stage.bullydog.com而不是stage.sctflash.com

这是我转到此页面时调用的操作方法:http://stage.sctflash.com/Products/accessories/podmount

  public ActionResult GetAccessoriesByType(RenderModel model, string id)
    {
        string brand = Common.GetProductBrand(Request.Url.Host);

        var productSearchResultsModel = new ProductSearchResultsModel
        {
            Accessories = _accessoryRepository.GetAccessoriesByType(id, brand)
        };

        return View("~/Views/accessories.cshtml", productSearchResultsModel);
    }

0 个答案:

没有答案