EntityDataSource から ListView を構築しています。ハイパーリンクの文字列型に変換する必要がある Sha1Hash という Byte[] フィールドがあります。これは ItemTemplate のコード スニペットです。
<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 を生成していますが、バイト配列の値を表す 16 進文字列である必要があります。これを達成するための最良のアプローチは何ですか?理想的には、コード ビハインドではなく、.aspx ページでこれを完全に実行します。
更新: を使用してこの問題を解決しました
NavigateUrl='<%# string.Format("~/GetDocument.ashx?docId={0}", BitConverter.ToString((byte[])Eval("SHA1HASH")).Replace("-", string.Empty) ) %>'
私の問題は、Eval() を byte[] にキャストする必要があることでした。文字列にキャストされていました。