发表日期:2019-04 文章编辑:小灯 浏览次数:2406
很多时候信息数据需要共享,一个最常用的应用场景就是手机版(独立手机,非响应式)本共享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 浏览次数:2585
日期:2019-04 浏览次数:2503
日期:2019-04 浏览次数:2405
日期:2019-04 浏览次数:2280
日期:2019-04 浏览次数:2356
日期:2019-04 浏览次数:2499
日期:2019-04 浏览次数:2468
日期:2019-04 浏览次数:2725
日期:2019-04 浏览次数:2789
日期:2019-04 浏览次数:2436
日期:2019-04 浏览次数:2705
日期:2019-04 浏览次数:2245
日期:2019-04 浏览次数:2396
日期:2019-04 浏览次数:2517
日期:2019-04 浏览次数:2362
日期:2019-04 浏览次数:2817
日期:2019-04 浏览次数:2680
日期:2019-04 浏览次数:2381
日期:2019-04 浏览次数:2605
日期:2019-04 浏览次数:2430
日期:2019-04 浏览次数:2205
日期:2019-04 浏览次数:2469
日期:2019-04 浏览次数:2410
日期:2019-04 浏览次数:2497
日期:2019-04 浏览次数:2472
日期:2019-04 浏览次数:2285
日期:2019-04 浏览次数:2220
日期:2019-04 浏览次数:2213
日期:2019-04 浏览次数:2283
日期:2019-04 浏览次数:2315
Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.