發表日期:2019-04 文章編輯:小燈 瀏覽次數:3072
很多時候信息數據需要共享,一個最常用的應用場景就是手機版(獨立手機,非響應式)本共享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 瀏覽次數:3181
日期:2019-04 瀏覽次數:3163
日期:2019-04 瀏覽次數:3071
日期:2019-04 瀏覽次數:2894
日期:2019-04 瀏覽次數:2987
日期:2019-04 瀏覽次數:3143
日期:2019-04 瀏覽次數:3087
日期:2019-04 瀏覽次數:3351
日期:2019-04 瀏覽次數:3403
日期:2019-04 瀏覽次數:3046
日期:2019-04 瀏覽次數:3433
日期:2019-04 瀏覽次數:2846
日期:2019-04 瀏覽次數:2986
日期:2019-04 瀏覽次數:3103
日期:2019-04 瀏覽次數:2952
日期:2019-04 瀏覽次數:3403
日期:2019-04 瀏覽次數:3317
日期:2019-04 瀏覽次數:2985
日期:2019-04 瀏覽次數:3216
日期:2019-04 瀏覽次數:3045
日期:2019-04 瀏覽次數:2811
日期:2019-04 瀏覽次數:3117
日期:2019-04 瀏覽次數:3012
日期:2019-04 瀏覽次數:3106
日期:2019-04 瀏覽次數:3065
日期:2019-04 瀏覽次數:2937
日期:2019-04 瀏覽次數:2788
日期:2019-04 瀏覽次數:2798
日期:2019-04 瀏覽次數:2868
日期:2019-04 瀏覽次數:2885
Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.