2016-07-20 2 views
0

ASP.NET MVC에서 두 개의 텍스트 필드와 독점적 인 선택 항목에서 설정된 문자열을 포함하는 양식을 게시 할 수있는 응용 프로그램을 만들고 있습니다. 이것은 사용자에게 표시되는 문자열 목록을 의미합니다. 선택하면 (한 번에 하나만 선택할 수 있음) 제출 (이 필드는 필수 항목 임)하면 선택 항목의 텍스트가 컨트롤러로 전달됩니다. 부트 스트랩에서 목록 그룹을 사용한 다음 onclick에 대한 JQuery 이벤트를 추가하고 숨겨진 양식 필드의 값을 설정해 보았습니다. 클릭 핸들러가 제대로 작동하지만 값 설정에 문제가 있습니다. 여기 내 코드는 다음과 같습니다ASP.NET 양식에 독점 선택 전달

내가 어떻게이 JQuery와 쓰레기없이 컨트롤러에 그 값을 전달 않습니다되어 물어 노력했다
<div class="col-xs-3"> 
      <div class="list-group" style="overflow-y: auto; height: 300px; width: 100%;"> 
       @Html.ActionLink("Create new occupation", "createOccupation", "Occupation", null, new { @class = "list-group-item" }) 
       @foreach (var occ in Get.AllOccupations().ToList()) 
       { 
        <a href="#" class="list-group-item">@occ.Title</a> 
       } 

      </div> 
     </div> 

<script> 
    $('.list-group-item').on('click', function() { 
     $('.list-group a.active').removeClass('active'); 
     $('#OccupancySelectBox').val($(this).find("a").first().text()); 
     $(this).addClass('active'); 
    }) 
</script> 
+0

간단한 드롭 다운 목록은 어떻게됩니까? – ADyson

+0

또는 라디오 버튼 그룹? –

+0

내가 물어 보려고했던 것은이 JQuery 쓰레기가없는 컨트롤러에이 값들을 어떻게 전달 하는가이다. – RhysO

답변

0

?

확실히. 당신이 선호하는 방식으로 jQuery/ajax없이 일반 폼 게시를 사용할 수 있습니다.

당신은 이제보기가 강하게 이것은 작업 목록 컬렉션에서 항목에 대한 radion 버튼을 생성합니다이보기 모델

@model JobSelectionVm 
@using(Html.BeginForm()) 
{ 
    <label>First Name</label> 
    @Html.TextBoxFor(s=>s.FirstName) 

    <label>Last Name</label> 
    @Html.TextBoxFor(s=>s.LastName) 

    <label>Select an Occupation</label> 
    var jobList = Get.AllOccupations().ToList(); 
    foreach (var occ in jobList) 
    { 
     @Html.RadioButtonFor(f => Model.SelectedJobId, ev.JobId) 
     <div>@ev.Title</div> 
    } 
    <input type="submit" /> 
} 

에 입력됩니다이

public class JobSelectionVm 
{ 
    public string FirstName {set;get;} 
    public string LastName { set;get;} 
    public int SelectedJobId {set;get; 
} 

같은 뷰 모델을 가지고 가정. 양식을 제출하면 선택한 작업의 ID를 SelectedJobId 속성 값으로 사용할 수 있습니다.

[HttpPost] 
public ActionResult Create(JobSelectionVm model) 
{ 
    // check model.FirstName,model.LastName, model.SelectedJobId 
    // to do : return something 
} 

또한, 당신은 라디오 버튼에 대한 데이터를 전달하는 속성을 가지고 뷰 모델을 업데이트 할 수 있습니다 (Get.AllOccupations())는 면도기보기에 Get.AllOccupations()를 호출 피할 수 있도록.