2017-07-10 4 views
0

Azure BLOBストレージを使用して関連するドキュメントをプロジェクトにアップロードできる小さなプロジェクト管理サイトをまとめています。MVC ListコンテナとパスのないAzureブロブ

ブロブのリストを表示してブロブをダウンロードできますが、すべてのコンテナなしでリストにブロブを表示することができます。&パス情報。

ここではC#

 public ActionResult doclist(int projectid) 
    { 
     CloudConfigurationManager.GetSetting("StorageConnectionString", true); 
     CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
       CloudConfigurationManager.GetSetting("StorageConnectionString")); 

     // Create the blob client. 
     CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); 

     // Retrieve reference to a previously created container. 
     CloudBlobContainer container = blobClient.GetContainerReference(containername); 

     List<CloudBlockBlob> blobs = new List<CloudBlockBlob>(); 

     //foreach (IListBlobItem item in container.ListBlobs(null, true)) 
     foreach (IListBlobItem item in container.ListBlobs((containername + "/" + projectid.ToString() + "/").ToString())) 
     { 
      CloudBlockBlob blob = (CloudBlockBlob)item; 

      blobs.Add(blob); 
     } 
     return View(blobs); 
    } 

ビューは単純な

     @foreach (var item in Model) 
        { 
         <tr> 
          <td> 
           @Html.DisplayFor(modelitem => item.Name) 
          </td> 
          <td> 
           @Html.DisplayFor(modelitem => item.Properties.Length) 
          </td> 
          <td> 
           @string.Format("{0:dd-MM-yyyy}", item.Properties.LastModified) 
          </td> 
          <td> 
           @Html.ActionLink("Download", "Download", "Projects", new { filename = item.Name}, new { @class = "btn btn-primary" }) 

          </td> 
         </tr> 
        } 

私は "コンテナ/ project1に/ document1.jpg" のようなitem.Name値で終わる「本質的にされますコンテナ/プロジェクト1 /文書2.pdf "など

表示したいのは、 " document1.jog "です"document2.pdf"

HTMLで単純な置き換えを試しましたが、これを動作させることはできませんでした。

また、C#のblobデータを使ってURIを変更しようとしましたが、BLOBのダウンロード方法に影響を与えたくありません。

私はここで本当に簡単に何かを見逃している推測が、これは私がBLOBストレージを使用したのは初めてであるなど

アムIデータベーステーブルにこの種のデータを書き込み、そこからそれを取得する方が良いです?

答えて

0

は、迅速な対応に感謝を

@{ 
    var itemName = System.IO.Path.GetFileName(item.Uri.LocalPath); 
    } 
    @Html.DisplayFor(modelitem => itemName) 
+0

こんにちはネアシュを試してみてください。 これは私のために働いていません。次のエラーが発生する テンプレートは、フィールドアクセス、プロパティアクセス、一次元配列インデックス、または単一パラメータカスタムインデクサ式でのみ使用できます。 – ExplodingPony

+0

式を変数に移動し、その変数を@Htmlヘルパーで使用することができます。そのエラーを解決します –

+0

Naresh、 パーフェクト。ありがとう、それはすごくうまくいく。 HTMLで物事を操作するのは全く新しい – ExplodingPony

関連する問題