2017-06-12 83 views
2

https://www.willistowerswatson.com/en/press頁面,在「服務」方面選擇「交換解決方案」,並注意如何查詢字符串更改爲:如何通過與查詢字符串當前URL到Html.ActionLink()函數在MVC

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)函數。

我的問題是,我還想發送ReturnRSS(string itemId)函數,當前頁面帶有其查詢字符串,它可以在HTML呈現後改變,並且選擇方面。換句話說,一旦選擇了「服務」方面的「Exchange解決方案」並點擊了「通過RSS訂閱」鏈接,我還想發送到「ReturnRSS」功能&f:@businesssegmentsubl_coveofacets_1=[Exchange%20Solutions]參數。

我該怎麼做?我是否應該撥打@Html.ActionLink以外的其他功能?

回答

1

您不必使用操作鏈接。 顯然,在渲染服務器端時,您不知道您希望發送的URL。

僅渲染您當時知道可以渲染的內容(即路由+項目ID)(自定義擴展?),並通過JS函數調整其餘內容。

例:

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