Dotnetnuke 如何从2sxc模块中的另一个门户访问某些实体关联文件?

Dotnetnuke 如何从2sxc模块中的另一个门户访问某些实体关联文件?,dotnetnuke,2sxc,Dotnetnuke,2sxc,我想从位于不同门户的某个实体的单个字段访问多个文件。问题是,当我尝试使用or时,其类型为Hyperlink的字段包含空字符串和方法AsAdam(entityObj,“FieldWithFiles”)。文件作为IEnumerable返回空IEnumerable。 那么,有没有办法从模块2sxc中的另一个门户获取文件数据 使用的环境: DNN v.9.6.1 2sxc v.11.5.0这可能会在v11.11中自行修复,但一般方法如下: 通过首先访问原始API来获取真实的文件id(而不是url)——类

我想从位于不同门户的某个实体的单个字段访问多个文件。问题是,当我尝试使用or时,其类型为
Hyperlink
的字段包含空字符串和方法
AsAdam(entityObj,“FieldWithFiles”)。文件作为IEnumerable
返回空
IEnumerable
。 那么,有没有办法从模块2sxc中的另一个门户获取文件数据

使用的环境: DNN v.9.6.1
2sxc v.11.5.0

这可能会在v11.11中自行修复,但一般方法如下:

通过首先访问原始API来获取真实的文件id(而不是url)——类似这样

var entity = AsEntity(Content);
var realLink = entity.GetBestValue<string>("FieldNameWhichHasTheLink");

// now you have something like file:74 in realLink
// now continue with the DNN API to figure out what file 74 is, and if the permissions allow access
var实体=实体(内容);
var realLink=entity.GetBestValue(“具有链接的字段名”);
//现在您在realLink中有了类似文件:74的内容
//现在继续使用DNNAPI来确定文件74是什么,以及权限是否允许访问

在我的情况下,它不起作用。我猜这是因为字段的类型是Hyperlink(文件库)。如何访问文件库?这是一个棘手的问题-它可能使用错误的门户进行文件夹查找。基本上,您可能会得到一个指向错误门户根目录的
AsAdam()
文件夹。请打开一个问题。作为一种非性感的解决方法,我想你应该检查AsAdam上返回的文件夹,然后使用正常的文件io和正确的文件夹,检查有哪些文件等。它应该返回一组文件ID吗?根据答案,我认为只有文件夹信息,就是这样。没错,在库模式下,它只返回一个文件夹。但是你可以问它文件夹的名称,这是错误的,因为它指向的是当前的门户,然后用portals/2/或其他任何东西替换根部分,然后使用System.IO读取文件夹等等。这不是完美的,只是一个临时的解决方法,直到它完成它应该做的事情。