2011-07-27 13 views
20

私は、これは動作しますが、私はIDと名前がこの形式chkTagになりたいこのレイザー構文の動的な名前HTML要素

のようなカミソリのコードを使用して
foreach (var tag in Model.Tags) 
    { 
     <input type="checkbox" id="@tag.ID" name="@tag.ID" value="@tag.TagName"/>@tag.TagName<br/
    } 

をチェックボックス要素の数を作成し、フォームを持っている[タグID]私はこれを試しました

しかし、Razorは単に文字列として扱い、[email protected]という名前を付けます。

私は自分の名前とIDの最後にダイナミックな剃刀IDをどのように追加するのですか?

おかげ

+0

なぜ 'Html.CheckBoxFor'を使用せず、' name' html属性を指定するのですか?さらに、エディタテンプレートを使用して 'foreach'ループを保存します。 – RPM1984

答えて

41

あなたはこのように、tag.IDの周りに括弧を使用する必要があります。これは、通常はそれを行う必要があります

foreach (var tag in Model.Tags) 
{ 
    <input type="checkbox" id="[email protected](tag.ID)" name="[email protected](tag.ID)" value="@tag.TagName"/> 
} 
4
@for (int i = 0; i < Model.Tags.Count(); i++) 
{ 

     @Html.CheckBoxFor(model => Model.Tags[i]) 

} 

[email protected](tag.ID) 

完全なコード。自動的に正しい名前が付けられます。

+0

+1これまでのところ私が見つけた唯一の答え! – iGanja