页面呈现期间的字符串编码

时间:2017-05-22 17:34:07

标签: c# razor model-view-controller sitecore sitecore8.1

我正在经历一个奇怪的问题,因为页面正在浏览器中呈现,或者看起来如此。

在模型中我有

public string ReviewWrapperUrl
{
    get
    {
        string returnurl = Settings.SiteSettings.SiteRoot + Settings.PowerReviewSettings.CCReviewWrapperUrl + PageID;
        if (!string.IsNullOrEmpty(Year))
        {
            returnurl = returnurl + "&pr_page_id_variant=" + Year;
        }
        return returnurl;
    }
}

此时returnurl包含http://www.mydomain.co.uk/write-a-review?page_id=191519&pr_page_id_variant=2018

之类的值

在我的cshtml中:

<script>
    try {

        POWERREVIEWS.display.render({
            api_key: "@Model.PowerReviewAPIKey",
            locale: "en_GB",
            merchant_group_id: "@Model.PowerReviewMerchantGroupID",
            merchant_id: "@Model.PowerReviewMerchantID",
            page_id: "@Model.PageID",
            review_wrapper_url: "@Model.ReviewWrapperUrl",
            components: {
                ReviewSnippet: 'pr-reviewsnippet',
                ReviewImageDisplay: 'pr-reviewimagedisplay',
                ReviewDisplay: 'pr-reviewdisplay'
            }
        });
    } catch (e) {
        window.console && window.console.log(e);
    }
</script>

如果我在review_wrapper_url: "@Model.ReviewWrapperUrl",上设置断点,则值相同。

这里变得更加复杂。然后powerreviews插件呈现给浏览器。但是,当它被渲染时,字符串已经以某种方式被编码。 &amp;在page_id=191519&pr_page_id_variant=2018已更改为&amp;,这导致我出现问题,因为目标网页上的插件使用&作为分隔符。

我已经与Power Reviews交谈,他们尝试了相同的值,无法复制问题。他们的一个开发人员知道一点c#/ APSX,他们认为.NET可能会以某种方式将其转换为正在呈现的内容。

但最终的URL已被Power Review插件附加了更多参数,这些参数不受影响。

http://www.mydomain.co.uk/write-a-review?page_id=191519&amp;pr_page_id_variant=2018&pr_merchant_id=xxxxxx&pr_api_key=xxx-xxxx-xxx-xxxx-xxxxxxxxx&pr_merchant_group_id=xxxxx

有没有人经历过这个?建议我如何证明或反驳可能导致它的过程?

0 个答案:

没有答案