为什么我的元数据无法从azure容器/ blob中正确呈现?

时间:2017-10-23 11:52:22

标签: c# azure webforms metadata blobs

当我尝试从blob中提取元数据时,它根本不显示。目前我可以上传一个音频文件,但是,我无法显示它。音频文件存储在Azure上,作为" PhotoGallery"中的blob。 " songsnippets"

下的容器

使用网络表单对我来说是新的,通常,我会使用MVC,但我的教育需要使用它。

视图代码 -

<form id="form1" runat="server">
        <asp:ScriptManager ID="sm1" runat="server" />
        <div>
            Upload Song:
            <asp:FileUpload ID="upload" runat="server" />
            <asp:Button ID="submitButton" runat="server" Text="Submit" OnClick="submitButton_Click" />
        </div>
        <div>
            <asp:UpdatePanel ID="up1" runat="server">
                <ContentTemplate>
                    <asp:ListView ID="ThumbnailDisplayControl" runat="server">
                        <ItemTemplate>
                               <audio src='<%# Eval("Url") %>' controls="" preload="none"></audio>
                               <asp:Literal ID="label" Text='<%# Eval("Title") %>' runat="server"/>
                        </ItemTemplate>
                    </asp:ListView>
                    <asp:Timer ID="timer1" runat="server" Interval="1000" />
                </ContentTemplate>
            </asp:UpdatePanel>
        </div>
    </form>

PagePre渲染方法背后的代码 -

ThumbnailDisplayControl.DataSource = from o in getPhotoGalleryContainer().GetDirectoryReference("songsnippet").ListBlobs()
                                                     select new { Url = o.Uri };


                ThumbnailDisplayControl.DataBind();

1 个答案:

答案 0 :(得分:1)

  

当我尝试从blob中提取元数据时,它根本不显示。目前我可以上传一个音频文件,但是,我无法显示它。

根据ASP.NET服务器页面中的代码,我假设您在单击submitButton按钮时上传音频文件,并使用Timer控件以定义的间隔启用部分页面更新,更新ThumbnailDisplayControl

中的音频文件列表

根据我的理解,您需要为timer1指定 OnTick ,并在相关的timer1_Tick事件中,您需要在您的天蓝色下获取最新的音频文件容器并绑定到ThumbnailDisplayControl控件,然后当您访问该页面并按F12时,您会看到ajax请求每秒发送到您的后端并更新您的ListView。有关计时器控制的更多详细信息,请参阅here

enter image description here

此外,您可以利用Azure Storage Explorer检查上传的音频文件。