0
value attribute
の値がradio
のinput
タグを保持する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>