2017-05-15 3 views
0

私はC#でこのコードを持っています。VB#C#servercode

<asp:Image runat="server" ID="imgScreenshot" ImageUrl="<%#"data:Image/png;base64," + Convert.ToBase64String((byte[])Eval("Screenshot")) %>" 

varbinaryイメージをimgに変換して表示します。これはC#で完璧に動作しますが、VB.netプロジェクトでは動作しません。

"サーバーコードが正しくコーディングされていません"。

誰でも私をVBに変換できますか?

+0

を、私は、これはC#で動作します疑いますこれはまったく同じ引用符について不平を言うからです。あなたのアトリビュート 'ImageUrl =" ... "では、一重引用符(または二重引用符を使用する必要があります)を使用する必要があります。 – Filburt

+2

'ImageUrl'属性は、他の二重引用符の中で二重引用符が使用されるため、' Server tag is well-formed'という問題を引き起こします。二重引用符は '<%...%>'の中でのみ使用し、 'String.Format'を使用して文字列を二重引用符で連結する必要があります。 –

答えて

1

vb.netで "&"は連結演算子であり、配列には大括弧 "[]"のかわりにかっこ "()"が定義されています。また、型変換構文も少し異なります。

私はこれは、C#からVB.netに変換することと考えている:

ImageUrl='<%#"data:Image/png;base64," & Convert.ToBase64String(CType(Eval("Screenshot"), Byte()))%>' 

代わりにあなたがstring.formatメソッドを使用することができますコメントで述べたように:

ImageUrl='<%# String.Format("data:Image/png;base64,{0}", Convert.ToBase64String(CType(Eval("Screenshot"), Byte())))%>' 
+0

こんにちは、ありがとう。最初のものはうまくいっていましたが、String.formatはちょうど注意するために働いていません。 –

+0

@ LukeRemmingさて、私はそれを修正し、答えを更新します。私は実際にこれらをテストしなかった。 :) – Popo

+1

@ LukeRemming正しい構文で更新を行いましたが、インラインタグでローカルに動作するようにstring.formatを取得できませんでした。 2つの文字列を連結するだけなので、 '&'はうまくいくはずです。 – Popo