2017-02-17 10 views
0

value attributeの値がradioinputタグを保持するViewModelのプロパティを定義しないと上記のことが可能ですか?たとえば、viewの場合、ユーザがIn-Storeラジオボタンを選択すると、SelectedOrderTypeプロパティは1を保持し、ラジオボタンがOnlineの場合は2を保持します。 しかし、フォームが送信されるとき、SelectedOrderTypeプロパティは、選択されたラジオボタンに関係なく、常に値1を保持します。 注::フォームがロードされると、デフォルトで最初のラジオボタンがチェックされます。しかし、ユーザーはもちろん、フォームを送信する前に2つのうちのいずれかをチェックすることができます。 NOTE 2:フォームポストで選択したラジオボタンタグヘルパーのハードコード値を取得する方法

@model TestProj.Models.TestViewModel 

<ul class="nav nav-tabs"> 
    <li class="active"><a data-toggle="tab" href="#menu1">Add Order</a></li> 
</ul> 
<div class="tab-content"> 
    <div id="menu1" class="tab-pane in active"> 
     <form asp-controller="TestContrl" asp-action="TestAction" method="post"> 
      <div asp-validation-summary="All" class="text-danger"></div> 
      <div class="radio"> 
       <label><input asp-for="SelectedOrderType" type="radio" value="1" checked="checked">In-Store</label> 
      </div> 
      <div class="radio"> 
       <label><input asp-for="SelectedOrderType" type="radio" value="2">Online</label> 
      </div> 
      <div> 
       .... 
       .... 
       <button type="button" class="btn btn-info btn-xs">Submit Order</button> 
      </div> 
     </form> 
    </div> 
</div> 


@section scripts 
{ 
    <script> 
     $(document).ready(function() { 
      $('.tab-content').on('click', '.btn', function (event) { 

       var selectedOrderTypeVal = $('#SelectedOrderType').val(); 

       $.ajax({ 
        url: '@Url.Action("TestContrl", "TestAction")', 
        data: { SelectedOrderType: selectedOrderTypeVal }, 
        contentType: 'application/json', 
        dataType: 'html', 
        type: 'GET', 
        cache: false, 
        success: function (data) { 
         $('#menu1').html(data); 
        }, 
        error: function (jqXHR, textStatus) { 
         alert('jqXHR.statusCode'); 
        } 
       }); 
      }); 
     }); 
    </script> 
} 

ビューモデル

public class TestViewModel 
{ 
    public string SelectedOrderType { get; set; } 

    public string CustormerName{ get; set; } 
} 
ラジオボタンタグヘルパーとフォームで

ビュー:フォームがview下記の内側にAjax呼び出しを経由して送信されます

ビューの生成されたHTMLのスナップショット

<html> 
.... 
<div class="radio"> 
     <label><input type="radio" value="1" checked="checked" data-val="true" data-val-required="The SelectedProjType field is required." 
    id="SelectedOrderType" name="SelectedOrderType">In-Store</label> 
</div> 
<div class="radio"> 
     <label><input type="radio" value="2" id="SelectedOrderType" name="SelectedOrderType">Online</label> 
</div> 
.... 
</html> 

答えて

関連する問題