2012-04-08 171 views
0

私は私のhtmlでこのコードを使用しています:どのようにhtmlでC#コードを使用できますか?

<a href="<%# ((bool)Eval("IsLinkToOther")) ? Eval("NewsLink") : ../News.aspx?NewsId=Eval("NewsId") %>"><%# Eval("Title") %></a> 

またはこの:

<a <%if(((bool)Eval("IsLinkToOther"))) 
    { %> 
    href="<%#Eval("NewsLink")%>"        
<% } %> 
<%else 
    {%> 
    href="../News.aspx?NewsId=<%#Eval("NewsId")%>" 
<% } %> ><%# Eval("Title") %></a> 

しかし、感謝...

+1

定義しないでください。 ASP.netをサポートするサーバーからコードをロードしていますか? –

+1

これは何をする予定ですか?それは実際には何ですか? – Quentin

+0

私は裁判官が好きではありませんが、それは厄介なコードです。 –

答えて

0

、助けてください、私はそれらを使用する方法、働いていません敬意をもって、絶対に必要な場合を除き、。プレゼンテーションレイヤとコードビハインドを混在させることは、本当に悪い習慣です。

正しい方法は、私の意見では、asp.netを使用しているという事実を利用することです。

Page.aspx

<asp:HyperLink ID="myLink" NavigateUrl="" runat="server" /> 

Page.aspx.cs

myLink.NavigateUrl = SomeClass.IsLinkToOther ? SomeClass.NewsLink : "~/News.aspx?NewsId=" + SomeClass.NewsId; 
+0

私にはプレゼンテーションのように見えます。醜い、ひどくやった...しかし、プレゼンテーション。例えば、Eval()はバータバインディングメソッドです。 –

+0

@AndrewBarber、彼は中括弧とロジック(if、else ...)も含めています...それは私の最大の不平です。それはあなたにとって良い習慣のようですか?あなたはすぐに、何が起こっているのを見ることができますか?これはクリーンなコードやレイヤーの分離とは関係ありません。 – walther

+0

私はすでにそれが醜いとひどくやったと言った。しかし、*プレゼンテーションコードです。 *はい*、彼はそれをやっています**すべて**間違っていますが、あなたが不平を言っている方法ではありません。あなたはプレネットのためのifとcurly bracesを持つことができない理由はありません...しかし、もう一度、彼は**そうではありません。 –

1

純粋なHTMLをレンダリングし、クライアント上で解釈されます。 C#は通常、サーバー側で使用されます(aspxファイルなど)。

これを実行するには、ASP.NETが有効なIISなどのASP.NET対応サーバーからサービスを提供する必要があります。

クライアント側の機能をお探しの場合は、Javascriptを使用してください。

1

は、あなたのHTMLタグに

runat="server" 

属性を追加しようとしたことがありますか?

関連する問題