Jquery 在MVC中获取所选单选按钮的值时遇到问题。首先列出的任何值都是我返回控制器的值。

Jquery 在MVC中获取所选单选按钮的值时遇到问题。首先列出的任何值都是我返回控制器的值。,jquery,asp.net-mvc,radio-button,Jquery,Asp.net Mvc,Radio Button,我无法将所选单选按钮的值传递给控制器。我首先列出的任何单选按钮都是返回控制器的值。例如,始终返回“tst” 使用JQUERY查看 <div class="atk-radio-center"> <div> @Html.RadioButtonFor(m => m.Impact, "tst", new { Checked = "checked" })

我无法将所选单选按钮的值传递给控制器。我首先列出的任何单选按钮都是返回控制器的值。例如,始终返回“tst”

使用JQUERY查看

<div class="atk-radio-center">
            <div>                   
                    @Html.RadioButtonFor(m => m.Impact, "tst", new { Checked = "checked" })
                    Yes
                    @Html.RadioButtonFor(m => m.Impact, "0")
                    No
            </div>
        </div>
<script>
$("#btnContinue").click(function () {
    $.post("/Start/SaveServiceAffectd",
        {
            impact: $('#Impact').val(),
            description: $('#Description').val(),

        },
        function (data) {
            if (data == "true") {

            } else {

            }
        });
});
视图模型

    [Required(ErrorMessage = "Work Description is required")]
    [Display(Name = "Description")]
    public string Description { get; set; }

    [Required(ErrorMessage = "Answer for Impact is required")]
    public string Impact { get; set; }

这就是我需要将JQUERY更改为以传递正确值的地方

选择选中的单选按钮。此外,不应重复ID。按照web标准,它们应该是独一无二的。改为使用类。更好的方法是将所有内容包装在一个表单中,并将表单发送给控制器。对于复选框和单选按钮,jquery form.serialize()将做正确的事情。如果要发布表单,则表单数据将只包括选中的值,通过
name=
属性(而不是通过
id=
)。因为您是手动生成数据,所以需要模拟:
$(“[name=Impact]:checked”).val()
@freedomn-m radiobutton用于创建具有name属性的正确html。您还可以使用“input:checked”作为选择器
    [Required(ErrorMessage = "Work Description is required")]
    [Display(Name = "Description")]
    public string Description { get; set; }

    [Required(ErrorMessage = "Answer for Impact is required")]
    public string Impact { get; set; }
impact: $("input[name='Impact']:checked").val(),