我正在经历一个奇怪的问题,因为页面正在浏览器中呈现,或者看起来如此。
在模型中我有
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
已更改为&
,这导致我出现问题,因为目标网页上的插件使用&
作为分隔符。
我已经与Power Reviews交谈,他们尝试了相同的值,无法复制问题。他们的一个开发人员知道一点c#/ APSX,他们认为.NET可能会以某种方式将其转换为正在呈现的内容。
但最终的URL已被Power Review插件附加了更多参数,这些参数不受影响。
http://www.mydomain.co.uk/write-a-review?page_id=191519&pr_page_id_variant=2018&pr_merchant_id=xxxxxx&pr_api_key=xxx-xxxx-xxx-xxxx-xxxxxxxxx&pr_merchant_group_id=xxxxx
有没有人经历过这个?建议我如何证明或反驳可能导致它的过程?