發表日期:2019-04 文章編輯:小燈 瀏覽次數:3082
很多時候信息數據需要共享,一個最常用的應用場景就是手機版(獨立手機,非響應式)本共享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 瀏覽次數:3187
日期:2019-04 瀏覽次數:3175
日期:2019-04 瀏覽次數:3081
日期:2019-04 瀏覽次數:2901
日期:2019-04 瀏覽次數:2997
日期:2019-04 瀏覽次數:3152
日期:2019-04 瀏覽次數:3097
日期:2019-04 瀏覽次數:3359
日期:2019-04 瀏覽次數:3421
日期:2019-04 瀏覽次數:3054
日期:2019-04 瀏覽次數:3444
日期:2019-04 瀏覽次數:2855
日期:2019-04 瀏覽次數:2996
日期:2019-04 瀏覽次數:3115
日期:2019-04 瀏覽次數:2963
日期:2019-04 瀏覽次數:3409
日期:2019-04 瀏覽次數:3328
日期:2019-04 瀏覽次數:2993
日期:2019-04 瀏覽次數:3227
日期:2019-04 瀏覽次數:3055
日期:2019-04 瀏覽次數:2818
日期:2019-04 瀏覽次數:3124
日期:2019-04 瀏覽次數:3024
日期:2019-04 瀏覽次數:3115
日期:2019-04 瀏覽次數:3078
日期:2019-04 瀏覽次數:2951
日期:2019-04 瀏覽次數:2799
日期:2019-04 瀏覽次數:2807
日期:2019-04 瀏覽次數:2875
日期:2019-04 瀏覽次數:2896
Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.