2

SharePoint ライブラリからドキュメント リストを取得しています。私のタスクは、ユーザーが docx ファイルを開くことができるように、そのリストの最初のドキュメントをユーザーに取得することだとしましょう。どうすればそれを行うことができますか?

さらに複雑なのは、SharePoint サーバーが別のドメインにあることです。私が取り組んでいる Web プロジェクトでは、顧客にドキュメントを表示しますが、sharepoint サーバーへの直接アクセスは公開しません。

    ClientContext clientContext = new ClientContext(URL);
    List list = clientContext.Web.Lists.GetByTitle("My Documents");

    CamlQuery camlQuery = new CamlQuery();
    camlQuery.ViewXml = XML;
    ListItemCollection listItems = list.GetItems(camlQuery);
    clientContext.Load(
         listItems,
         items => items.Include(item => item["FileRef"]));

    clientContext.ExecuteQuery();

    // return this file to the user
    // listItems[0];
4

2 に答える 2

3

このクエリの結果に基づいて "A" 要素を作成すると、ユーザーはアイテムへのフル パスを含むリンクをクリックするだけで済みます (これは、通常の SharePoint リストがレンダリングされる方法とほぼ同じです)。

于 2011-04-18T23:29:53.250 に答える
1

ソリューションのエグゼクティブ サマリーは次のとおりです。アンカー タグを生成するときは、ドキュメントが値を持つ必要がある FileRef フィールドからの情報を含めます。これは後で使用する参照フィールドです。

呼び出すときに参照を使用します

        FileInformation fileInformation = Microsoft.SharePoint.Client.File.OpenBinaryDirect(clientContext, reference);

        Stream stream = fileInformation.Stream; 
        if (stream != null)
        {
            documentName = Path.GetFileName(reference);

            return new FileStreamResult(stream, "unknown")
            {
                FileDownloadName = documentName
            };
        }
于 2011-04-26T17:21:30.077 に答える