0

RazorでMVC3を使用しています。

ラジオ ボタンの ID を動的に生成したいと考えています。コードをループで呼び出しており、ID と名前を動的に生成する必要があります。ビューのラジオボタンに名前を付けます...以下のコードのように....

@Html.RadioButtonFor(m => m.ClaimEntity.Claim, "True", Model.m.ClaimEntity.Claim.Equals(true) ? new { name = "Claim_" + ViewData["count"].ToString(), id = "Claim", title = "Claim_" + ViewData["count"].ToString() } : null)
                @Html.Label("Yes")
                @Html.RadioButtonFor(m => m.ClaimEntity.Claim, "False", Model.m.ClaimEntity.Claim.Equals(false) ? new { name = "Claim_" + ViewData["count"].ToString(), id = "Claim", title = "Claim_" + ViewData["count"].ToString() } : null)
                @Html.Label("No")

問題は、上記のコード スニペットでは、ラジオボタン用に作成された動的 ID が表示されないのに対し、動的に作成された「タイトル」が表示されるため、「id」および「name」属性の「タイトル」に同様の行が必要です。

どうすればこれを機能させることができるかをお勧めします。よろしく、

4

1 に答える 1

0

生成しているすべてのラジオボタンが同じ ID を持っているようです! これにより、Web ページで予期しない動作が発生する可能性があります。原則として、各要素には一意のID が必要です。

id を ViewData["count"] にも依存させると、それらが一意であることを確認できます。

@Html.RadioButtonFor(m => m.ClaimEntity.Claim, "True", Model.m.ClaimEntity.Claim.Equals(true) ? new { name = "Claim_" + ViewData["count"].ToString(), id = "Claim_True" + ViewData["count"].ToString(), title = "Claim_" + ViewData["count"].ToString() } : null)
                @Html.Label("Yes")
                @Html.RadioButtonFor(m => m.ClaimEntity.Claim, "False", Model.m.ClaimEntity.Claim.Equals(false) ? new { name = "Claim_" + ViewData["count"].ToString(), id = "Claim_True" + ViewData["count"].ToString(), title = "Claim_" + ViewData["count"].ToString() } : null)
                @Html.Label("No")
于 2012-09-12T17:00:26.187 に答える