2014-07-09 132 views
1

我想为我的单选按钮组做模型绑定,情况是这样的: 每当我想要检查USD或%单选按钮,在我的控制器中我想获得当我按下提交表单按钮时,所选单选按钮的真值或假值,但似乎View并没有传递任何值,因为我在模型中为它​​们设置了int属性。除了我的单选按钮外,我从表格中获得所有值。 我希望得到任何帮助在Asp.Net MVC 4.0 RadioButtonList模型绑定

@for (int i = 0; i < Model.LstOrderDetails.Count; i++) 
    { 

     <tr> 
     @if (!string.IsNullOrEmpty(Model.LstOrderDetails[i].OrderedDiscountAmount) && 
     (!string.IsNullOrEmpty(Model.LstOrderDetails[i].OrderedDiscountPerc))) 
     { 
      if(decimal.Round(Convert.ToDecimal(Model.LstOrderDetails[i].OrderedDiscountAmount), 2, MidpointRounding.AwayFromZero) != 0M) 
     {           
      <td class="col-md-2 col-xs-2"> 
      <table style="font-size: 11px;"> 
       <tr> 
       <td> 
        USD 
       </td> 
       <td>                               @Html.RadioButton(Model.LstOrderDetails[i].OrderDetailID, Model.LstOrderDetails[i].IsDiscountAmnt, Convert.ToBoolean(Model.LstOrderDetails[i].IsDiscountAmnt)) 
       </td> 
       <td rowspan="2">@Html.TextBoxFor(x => x.LstOrderDetails[i].OrderedDiscountAmount, new { @class = "form-control", placeholder = "Discount", style = "font-size: 12px;" }) 
      </td> 
      </tr> 
      <tr> 
       <td> 
       % 
       </td> 
       <td>@Html.RadioButton(Model.LstOrderDetails[i].OrderDetailID,Model.LstOrderDetails[i].IsDiscountPerc, Convert.ToBoolean(Model.LstOrderDetails[i].IsDiscountPerc)) 
       </td> 
       <td> 
       </td> 
      </tr> 
      </table> 
     </td> 
     } 

     else 
     { 
     if (decimal.Round(Convert.ToDecimal(Model.LstOrderDetails[i].OrderedDiscountPerc), 2, MidpointRounding.AwayFromZero) != 0M) 
     { 
     removeafterzero = Model.LstOrderDetails[i].OrderedDiscountPerc.Substring(0, Model.LstOrderDetails[i].OrderedDiscountPerc.LastIndexOf('.')); 

     <td class="col-md-2 col-xs-2"> 
     <table style="font-size: 11px;"> 
     <tr> 
     <td> 
     USD 
     </td> 
     <td> @Html.RadioButton(Model.LstOrderDetails[i].OrderDetailID, Model.LstOrderDetails[i].IsDiscountAmnt, Convert.ToBoolean(Model.LstOrderDetails[i].IsDiscountAmnt)) 
     </td> 
     <td rowspan="2">@Html.TextBoxFor(x => removeafterzero, new { @class = "form-control", placeholder = "Discount", style = "font-size: 12px;" }) 
     </td> 
     </tr> 
     <tr> 
     <td> 
      % 
     </td> 
     <td> @Html.RadioButton(Model.LstOrderDetails[i].OrderDetailID, Model.LstOrderDetails[i].IsDiscountPerc, Convert.ToBoolean(Model.LstOrderDetails[i].IsDiscountPerc)) 
     </td> 
     <td> 
     </td> 
    </tr> 
    </table> 
    </td> 
    } 
} 
    } 

//Model Part 
public class OrderDetail 
    { 
     . 
     . 
     . 
     public string OrderedDiscountAmount { get; set; } 
     public string OrderedDiscountPerc { get; set; } 
     public int IsDiscountPerc { get; set; } 
     public int IsDiscountAmnt { get; set; } 
    } 

回答

0

到现场配合你的模型,你需要使用一个“为”帮手。试着改变你的单选按钮

@Html.RadioButtonFor(x => x.LstOrderDetails[i].OrderDetailID, "Dollar") 
@Html.RadioButtonFor(x => x.LstOrderDetails[i].OrderDetailID, "Percent") 

,因为二者都连接到相同的领域,该领域将有选择的单选按钮(在这个例子中美元或百分比)的值