發表日期:2019-04 文章編輯:小燈 瀏覽次數:3090
很多時候信息數據需要共享,一個最常用的應用場景就是手機版(獨立手機,非響應式)本共享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 瀏覽次數:3194
日期:2019-04 瀏覽次數:3181
日期:2019-04 瀏覽次數:3089
日期:2019-04 瀏覽次數:2908
日期:2019-04 瀏覽次數:3005
日期:2019-04 瀏覽次數:3160
日期:2019-04 瀏覽次數:3103
日期:2019-04 瀏覽次數:3370
日期:2019-04 瀏覽次數:3432
日期:2019-04 瀏覽次數:3062
日期:2019-04 瀏覽次數:3454
日期:2019-04 瀏覽次數:2861
日期:2019-04 瀏覽次數:3004
日期:2019-04 瀏覽次數:3122
日期:2019-04 瀏覽次數:2970
日期:2019-04 瀏覽次數:3418
日期:2019-04 瀏覽次數:3335
日期:2019-04 瀏覽次數:2999
日期:2019-04 瀏覽次數:3235
日期:2019-04 瀏覽次數:3061
日期:2019-04 瀏覽次數:2825
日期:2019-04 瀏覽次數:3131
日期:2019-04 瀏覽次數:3030
日期:2019-04 瀏覽次數:3124
日期:2019-04 瀏覽次數:3084
日期:2019-04 瀏覽次數:2957
日期:2019-04 瀏覽次數:2807
日期:2019-04 瀏覽次數:2815
日期:2019-04 瀏覽次數:2882
日期:2019-04 瀏覽次數:2905
Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.