在https://www.willistowerswatson.com/en/press
页面上,选择" Exchange Solutions"在"服务" facet,并注意查询字符串如何更改为:
https://www.willistowerswatson.com/en/press#sort=%40fdisplayz45xdate47442%20descending&f:@businesssegmentsubl_coveofacets_1=[Exchange%20Solutions]
然后,当您点击"按RSS订阅"按钮,打开一个新选项卡,其中保留了那些查询字符串参数(由构面选择生成)。
我想复制此行为,因为我们正在将Coveo搜索转换为MVC视图。在我的Search.cshtml文件中,对于"按RSS订阅"链接,我有这个代码:
@Html.ActionLink(Translate.TextByDomain(StringConstants.DictionaryDomains.WTW, "Subscribe by RSS"), "ReturnRSS", "Search", new { @itemId = Sitecore.Context.Item.ID.ToString() }, new { target = "_blank" })
代码在我的视图源中生成的HTML是:
<a href="/api/sitecore/Search/ReturnRSS?itemId=%7BE1EB2D45-066F-4F8F-8B9B-049E7918A034%7D" target="_blank">Subscribe by RSS</a>
并成功调用public void ReturnRSS(string itemId)
课程中的public class SearchController : GlassController
函数。
我的挑战是我还要发送到ReturnRSS(string itemId)
函数,当前页面URL WITH ITS QUERY STRINGS,它可以在HTML呈现之后更改,并且选择了facet。换句话说,一旦&#34; Exchange Solutions&#34;在&#34;服务&#34;选择了facet,并且&#34;通过RSS订阅&#34;链接被点击,我也想发送到&#34; ReturnRSS&#34; function,&f:@businesssegmentsubl_coveofacets_1=[Exchange%20Solutions]
参数。
我该怎么做?我应该调用@Html.ActionLink
以外的其他功能吗?
答案 0 :(得分:1)
您不必使用动作链接。 显然,在渲染服务器端时,您不知道要发送的URL。
仅渲染您当时可以呈现的内容(即路线+项目ID)(自定义扩展名?),并通过JS函数调整其余内容。
例如:
button.onClick = () => {
window.open(getURL(), "_blank");
}