發表日期:2019-04 文章編輯:小燈 瀏覽次數:2888
很多時候信息數據需要共享,一個最常用的應用場景就是手機版(獨立手機,非響應式)本共享pc版本數據,下面以這個場景為例講解。
假設手機版本對應信息欄目id為10,要調用pc欄目id等于1的信息數據,那么在手機模板中寫如下代碼就可以調取到pc數據。
<ul> ????@foreach(var?item?in?Html.InfoDataList(new?{ColumnId=1})) ????{ ????????string?url?=?Html.InfoDataUrl((int)item.ColumnId,(int)item.Id); ????????<li?class="item?clearfix"> ??????????<a?href="@url"?target="_blank">@item.Title</a> ????????</li> ????} </ul>
但是這段代碼有個問題,Html.InfoDataUrl得到的是信息所在的站點的內容頁url地址,手機打開信息內容會跳轉到pc站點去。
解決辦法:用Html.InfoDataSharedUrl方法來調用,代碼如下:
<ul> ????@foreach?(var?item?in?Html.InfoDataList(new?{?ColumnId?=?1?})) ????{ ????????string?url?=?Html.InfoDataSharedUrl(10,(int)item.Id); ????????<li?class="item?clearfix"> ????????????<a?href="@url"?target="_blank">@item.Title</a> ????????</li> ????} </ul>
注意Html.InfoDataSharedUrl第一個參數指定當前手機欄目id。
如果按上面寫法,還是會存在兩個問題:
1、如果手機版本不同欄目需要共享不同pc欄目的信息,ColumnId參數就要設置不同,就需要單獨制作很多模板。
解決辦法:欄目中添加一個下拉類型的自定義字段,關聯pa_column表的name字段,可以直接在后臺選擇對應的pc欄目,然后模板中讀取自定義字段后賦值給ColumnId參數,具體看頁面后面的相關教程。
2、手機版本對應信息欄目id為10,也可能為11,12,如果手工指定具體指,每個欄目也需要建不同的模板。
解決辦法:是用Html.CurrentColumnId()代替,這個方法獲取當前信息欄目id。
日期:2019-04 瀏覽次數:3019
日期:2019-04 瀏覽次數:2986
日期:2019-04 瀏覽次數:2887
日期:2019-04 瀏覽次數:2736
日期:2019-04 瀏覽次數:2822
日期:2019-04 瀏覽次數:2985
日期:2019-04 瀏覽次數:2937
日期:2019-04 瀏覽次數:3197
日期:2019-04 瀏覽次數:3239
日期:2019-04 瀏覽次數:2897
日期:2019-04 瀏覽次數:3247
日期:2019-04 瀏覽次數:2682
日期:2019-04 瀏覽次數:2837
日期:2019-04 瀏覽次數:2949
日期:2019-04 瀏覽次數:2789
日期:2019-04 瀏覽次數:3251
日期:2019-04 瀏覽次數:3145
日期:2019-04 瀏覽次數:2832
日期:2019-04 瀏覽次數:3059
日期:2019-04 瀏覽次數:2882
日期:2019-04 瀏覽次數:2654
日期:2019-04 瀏覽次數:2954
日期:2019-04 瀏覽次數:2866
日期:2019-04 瀏覽次數:2959
日期:2019-04 瀏覽次數:2911
日期:2019-04 瀏覽次數:2781
日期:2019-04 瀏覽次數:2618
日期:2019-04 瀏覽次數:2656
日期:2019-04 瀏覽次數:2706
日期:2019-04 瀏覽次數:2746
Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.