web-dev-qa-db-ja.com

aspにdivにIDを追加するmvc razor foreachループ

変数idの値と連結されたdivループ内のforeachに動的iを追加しようとしています。構文エラーをスローします。何が問題なのでしょうか。 forループを使用せずにこのソリューションを実現できますか?

@{int i=1;}
@foreach (var or in Model.Names)
{           
       <div oid="@or.Id" mode="0" oids="@or.Id" id="tr"+i>
       @or.Name
       </div>
i++;
}
21
Kurkula

コードのC#セグメントでIDを構築します。 1つのオプションは、文字列形式で全体を構築することです。

_<div oid="@or.Id" mode="0" oids="@or.Id" id="@string.Format("tr{0}",i)">
_

またはid="@("tr"+i)"またはid="tr@(i)"

Razor構文パーサーは通常のメールアドレスのように見えるため、「text @ text」を無視するため、_id="tr@i"_だけを実行することはできません。

49
Alexei Levenkov

新しくC#6では、id = "@($" tr {i} ")"を直接使用できます

3

次のように追加することはできません:

id="tr"+i>

それは違いない:

id="tr@i">

@ ..が必要なのは、その時点でマークアップとRazorを推測できないためです。

3
Simon Whitehead

しばらくこれに苦労した後、id="@("tr"+i)"が私のために仕事をしてくれたことがわかりました

0
atamata

私にとっては、この解決策はどれも機能しませんでしたが、最初に私の@iを追加すると、ビルド後に_id="@i+AnyText"_が機能し、次の問題について_id="1+AnyText"_を取得し、_id="2+AnyText"_を取得します(im 2013vsを使用)..

良い一日をお過ごしください。

0
misterzik