2012-08-07 4 views
1

razor 뷰 엔진을 사용 중이며 radiobutton 목록을 만드는 데 어려움이 있습니다.면도기의 동적 라디오 버튼

보기에서 내 모델의 값이 for 루프 인 테이블을 채우는 중입니다. 각 행에 을 갖고 싶습니다. radiobutton을 갖고 싶습니다. 한 행만 선택하고 모델에서 관련 항목 ID를 가져 와서 다른 페이지로 제출할 수 있기를 원합니다. 나는 게시하는 방법을 안다. 실제로 checkbox을 사용하여이 작업을 수행했습니다. 그러나 checkbox의 문제점은 다중 선택을 허용한다는 것입니다.

그래서 radiobutton을 사용해야합니다. 어떤 도움을 주시면 감사하겠습니다.

+0

을 선택하여 선택된 값을 읽을 수 있습니다. –

답변

3

public Class CheckOutViewModel 
{ 
    public string SelectedPaymentType { set; get; } 
    public IEnumerable<SelectItems> PaymentTypes { set; get; } 
} 

같은 뷰 모델이 가정 그리고 당신은 당신의 GET의 조치 방법에 PaymentTypes 컬렉션을 설정하고 강력하게 CheckOutViewModel

public ActionResult Checkout() 
{ 
    var vm=new CheckOutViewModel 
    vm.PaymentTypes=GetPaymentTypes(); //gets a list of SelectItems 
    return View(vm); 
} 

그리고에 입력 된 뷰에 보내기 내보기에서

@model CheckOutViewModel 
@using(Html.BeginForm()) 
{ 
    foreach (var paymentItem in Model.PaymentTypes) 
    { 
    @Html.RadioButtonFor(mbox => mbox.SelectedPaymentType, 
               paymentItem.ID.ToString())  
    @paymentItem.Name  
    } 
    <input type="submit" value="Save" /> 
} 

으로 표시 sum GetPaymentTypes() 메서드는 데이터베이스에 기록하기 위해 SelectItems의 목록을 반환합니다.

동일한 이름 값 (SelectedPaymentType)을 가진 라디오 버튼을 제공합니다. 그래서 하나만 선택할 수 있습니다. 당신의 POST 행동

, 당신은 그냥 하나의 확인란을 한 번에 선택할 수 있도록 JQuery와 사용 SelectedPaymentType 속성 값을

[HttpPost] 
public ActionResult Checkout(CheckOutViewModel model) 
{ 
    //check the value of model.SelectedPaymentType 

}