2012-09-11 206 views
0

我正在使用MVC3和Razor。動態添加控件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,而它顯示dynaimically創建的「稱號」 ,所以我需要爲「id」和「name」屬性的「標題」在類似的行上添加一些內容。

Plz建議我如何得到這個工作。 Regards,

+0

下面是使用枚舉與單選按鈕的一些很好的指導:http://stackoverflow.com/q/5621013/109941 –

回答

0

它看起來像你生成的所有單選按鈕都有相同的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")