【发布时间】:2017-11-14 03:39:13
【问题描述】:
在https://www.willistowerswatson.com/en/press 页面上,选择“服务”方面的“Exchange 解决方案”,并注意查询字符串如何更改为:
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 class SearchController : GlassController 类中调用了我的public void ReturnRSS(string itemId) 函数。
我的挑战是,我还想将带有查询字符串的当前页面 URL 发送到 ReturnRSS(string itemId) 函数,它可以在呈现 HTML 和选择方面后更改。换句话说,一旦选择了“服务”方面的“Exchange 解决方案”,并单击了“通过 RSS 订阅”链接,我还想将 &f:@businesssegmentsubl_coveofacets_1=[Exchange%20Solutions] 参数发送到“ReturnRSS”函数。
我该怎么做?我是否应该调用@Html.ActionLink 以外的其他函数?
【问题讨论】:
标签: javascript asp.net-mvc asp.net-mvc-4 razor html.actionlink