javascript - 如何将带有查询字符串的当前 Url 传递给 MVC 中的 Html.ActionLink() 函数

标签 javascript asp.net-mvc asp.net-mvc-4 razor html.actionlink

https://www.willistowerswatson.com/en/press 页面上,在“服务”方面选择“交换解决方案”,并注意查询字符串如何更改为:

https://www.willistowerswatson.com/en/press#sort=%40fdisplayz45xdate47442%20descending&f:@businesssegmentsubl_coveofacets_1=[Exchange%20Solutions]

然后,当您单击“通过 RSS 订阅”按钮时,将打开一个新选项卡,其中保留了那些查询字符串参数(由构面选择生成)。

既然我们正在将 Coveo 搜索转换为 MVC View ,我想复制此行为。在我的 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" })

代码在我的 View 源中生成的 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 后更改,并且构面是选择。换句话说,一旦选择了“服务”方面的“交换解决方案”,并单击了“通过 RSS 订阅”链接,我还想发送到“ReturnRSS”功能,&f:@businesssegmentsubl_coveofacets_1= [Exchange%20Solutions] 参数。

我该怎么做?我是否应该调用 @Html.ActionLink 以外的其他函数?

最佳答案

您不必使用操作链接。 显然,您不知道在呈现服务器端时要发送的 URL。

只渲染你知道当时可以渲染的内容(即路由 + 项目 ID)(自定义扩展?)并通过 JS 函数调整其余部分。

例如:

button.onClick = () => {
   window.open(getURL(), "_blank");
}

关于javascript - 如何将带有查询字符串的当前 Url 传递给 MVC 中的 Html.ActionLink() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44503205/

相关文章:

javascript - 为什么 If-else 条件不能正常工作

c# - 初学者。 cshtml if,随机数和传回数据

security - 如何使用禁用 cookie 和 ASP.NET 的浏览器处理 Antiforgerytoken

c# - 如何为 MVC 的 ReportViewer 设置宽度

javascript - webpack 2 和 css 中的背景图像

javascript - 使用其他属性在数组中查找对象的属性

javascript - 是否可以使用 javascript 获取 .Net 对象的类型?

asp.net-mvc - 在MVC中使用Session对象,真的很糟糕吗?

c# - viewmodel 在回发 mvc 5 上返回 null

javascript - 三JS : Using a Sprite with the OculusRiftEffect