2012-09-11 148 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")