Visual studio 2015 如何获取表单上选定单选按钮标记辅助对象的硬编码值

Visual studio 2015 如何获取表单上选定单选按钮标记辅助对象的硬编码值,visual-studio-2015,asp.net-core-mvc,tag-helpers,Visual Studio 2015,Asp.net Core Mvc,Tag Helpers,如果不在ViewModel中定义一个属性,该属性保存input类型radio的value属性的值,则可以执行上述操作。例如,在下面的视图中,如果用户选择了店内单选按钮,我希望SelectedOrderType属性保持1,如果选择了在线单选按钮,则保持2。 但在提交表单时,SelectedOrderType属性始终保持值1,而不管选择了哪个单选按钮注意:加载表单时,默认情况下选中第一个单选按钮。当然,用户可以在提交表单之前检查这两个选项中的任何一个注意2:表单通过以下视图中的Ajax调用提交: 使

如果不在
ViewModel
中定义一个属性,该属性保存
input
类型
radio
value属性的值,则可以执行上述操作。例如,在下面的
视图中
,如果用户选择了
店内
单选按钮,我希望
SelectedOrderType
属性保持1,如果选择了
在线
单选按钮,则保持2。 但在提交表单时,
SelectedOrderType
属性始终保持值1,而不管选择了哪个单选按钮注意:加载表单时,默认情况下选中第一个单选按钮。当然,用户可以在提交表单之前检查这两个选项中的任何一个注意2:表单通过以下
视图中的Ajax调用提交:

使用带有单选按钮标记帮助器的表单查看

@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; }
}
<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>
视图的已生成Html的快照

@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; }
}
<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>

....
在制品
在线 的
....

上述Ajax代码中的以下代码就是问题所在

var selectedOrderTypeVal = $('#SelectedOrderType').val();
它应该是如下所述:

也很有趣[如果您想使用ViewModels]:

  • 检查