2013-06-19 3 views
0

내보기의 선택 값을 컨트롤러로 전달하는 데 어려움을 겪고 있습니다. 컨트롤러로 호출 할 수있는 모델로 돌아가고 싶은 두 가지 항목이 있습니다. 지금까지 내가 가지고있는 것을 보았습니다.컨트롤러에 선택 값을 전달할 수 없습니다.

<label for="phone" class="ui-hidden-accessible">Phone Number:</label> 
@Html.TextBoxFor(m => m.PhoneNumber, new { @class = "field-margin", id="phone", type="tel", placeholder="Phone Number"}) 

<p></p> 
<div><p>Save phone for future purchases?</p> 
<select name="SavePhone"id ="SavePhone" class="SavePhone" data-role="select"> 
<option value="false" @(Model.SavePhone == false ? "selected" : "")>No</option>    
<option value="true" @(Model.SavePhone == true ? "selected" : "")>Yes</option>     
</select>< 

두 번째 부분을 선택 옵션으로 호출하는 방법을 정확히 모르겠습니다. 그러나 전화 번호를받는 코드의 윗부분이 작동합니다. 모델, 컨트롤러 및 뷰에서의 모든 이름은 동일하므로 다음에 무엇을해야할지 모르겠습니다. 의견이 있으시면 감사하겠습니다.

감사합니다. 내가

내가 첫 페이지에 계속을 클릭 한 후
@Html.Partial("MobilePhoneView", Model) 

로이로드하고 있기 때문에


편집

내가, 내 문제의 부분을 생각, 내 두 사람과 함께보기를로드 옵션을 선택하고 표시되기 전에 선택 블록을 누릅니다. 이 문제를 해결할 수있는 방법이 있습니까?

+0

여기에서 달성하려는 것은 무엇입니까? – Andrei

+0

내 양식을 컨트롤러에 제출 한 후 Model.SavePhone에서 true 또는 false 값을 반환하려고합니다. 이미 모델을 전달 중이며 위 코드의 맨 위 부분이 잘 작동하므로 게시물이 작동한다는 것을 알고 있습니다. – user2094139

+0

그리고 겪고있는 문제는 무엇입니까? – Andrei

답변

1

AJAX를 사용하여이를 수행 할 수 있습니다.

<script language="javascript" type="text/javascript"> 
    $(document).ready(function() { 

     $("form").submit(function() { 
     $.ajax({ 
      url: '@Url.Action("MethodName","ControllerName")', 
      type: 'POST', 
      cache: false, 
      data: { Selected: $("#SavePhone").val() }, 
      success: function (data) { 
      // 
      } 
     }); 
    }); 
)}; 
</script> 

당신은 컨트롤러

private string MethodName (string Selected) 
{ 
    String value = Selected; 
    return "OK"; 
} 
+0

조언 해 주셔서 감사합니다. – user2094139

0

만에이 값을 얻을 것이다 : 당신이 다음 HTML을

<select name="SavePhone"id ="SavePhone" class="SavePhone" data-role="select"> 
<option value="false">No</option>    
<option value="true">Yes</option>     
</select> 

을 다음과 같은 경우, 당신은 단순히 컨트롤러로 전송 당신의 선택에 다음을 사용할 수 있습니다 코드에 발생할 수있는 문제는 selected 속성 일 수 있습니다. 모든 브라우저가 단지 selected을 이해하지는 못합니다. (나는 HTML5와 같은 속성을 설정하는 방법이라고 생각합니다.) 모두 이해해야하지만 selected="selected"입니다. 따라서 시도 할 수있는 것은 :

<select name="SavePhone"id ="SavePhone" class="SavePhone" data-role="select"> 
    <option value="false" @(Model.SavePhone == false ? "selected=\"selected\"" : "")>No</option>    
    <option value="true" @(Model.SavePhone == true ? "selected=\"selected\"" : "")>Yes</option>     
</select> 
+0

내 문제의 일부를 알아 냈습니다. 계속을 클릭하면 @ Html.Partial ("MobilePhoneView", Model)으로로드되므로 이후 두 개의 옵션이있는보기가로드되고 선택 블록에 도달하기도 전에 표시합니다. 이 문제를 해결할 수있는 방법이 있습니까? 나는 지금 무엇을 해야할지 잘 모르겠다 .. – user2094139

+0

나는 내 문제의 뿌리를 발견했다. 나는 @Html.DropDownListFor (m => m.SavePhone, [참 또는 거짓]의 목록, ...)을 만들 필요가있다. 이와 같이 작동해야합니다. 이것을 구현하는 방법을 알고 계십니까> – user2094139

관련 문제