【问题标题】:ASP.NET Eval Byte Array as StringASP.NET Eval 字节数组作为字符串
【发布时间】:2012-09-24 15:44:07
【问题描述】:

我正在从 EntityDataSource 构建一个 ListView。有一个名为 Sha1Hash 的 Byte[] 字段,我需要将其转换为超链接的字符串类型。这是来自 ItemTemplate 的代码 sn-p:

<asp:HyperLink ID="hl_Document" runat="server"
    NavigateUrl='<%# string.Format("~/GetDocument.ashx?docId={0}", Eval("SHA1HASH") ) %>' 
    Text='<%# Eval("DOCUMENTNAME") %>' />

这会生成一个类似“~/GetDocument.ashx?docId=System.Byte[]”的 URL,但它必须是一个十六进制字符串,表示字节数组的值。实现这一目标的最佳方法是什么?理想情况下,我会完全在 .aspx 页面中完成此操作,而不是在后面的代码中。

更新:我通过使用解决了这个问题

NavigateUrl='<%# string.Format("~/GetDocument.ashx?docId={0}", BitConverter.ToString((byte[])Eval("SHA1HASH")).Replace("-", string.Empty) ) %>'

我的问题是我需要将 Eval() 转换为 byte[]。它被转换成字符串。

【问题讨论】:

    标签: asp.net listview data-binding bytearray eval


    【解决方案1】:

    我通过使用解决了这个问题

    NavigateUrl='<%# string.Format("~/GetDocument.ashx?docId={0}", BitConverter.ToString((byte[])Eval("SHA1HASH")).Replace("-", string.Empty) ) %>'
    

    我的问题是我需要将 Eval() 转换为 byte[]。

    【讨论】:

      【解决方案2】:

      根据您想要的格式,您可能正在寻找Convert.ToBase64String() 或BitConverter.ToHexString()。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-05-27
        • 1970-01-01
        • 2013-10-23
        • 2021-11-11
        • 1970-01-01
        • 1970-01-01
        • 2015-04-24
        • 1970-01-01
        相关资源
        最近更新 更多