我在很多地方都找到了类似问题的答案,但即使复制/粘贴代码也无法解决我的问题!
我正在开发MVC / C#应用程序,并且具有如下所示的bool属性:
public bool IsMarried { get; set; }
在视图方面,我有以下代码表示该属性:
<label class="radio-inline">
@Html.RadioButtonFor(model => model.IsMarried , true)Yes
</label>
<label class="radio-inline">
@Html.RadioButtonFor(model => model.IsMarried , false)No
</label>
我的问题是,无论何时我提交表单,我都会获得所有其他正常字段(文本),但布尔属性始终为true
正如我提到的,我发现了许多解决方案,例如this one,但我不知道为什么它对我不起作用。
由作者添加:
我想添加此问题以使所有内容可见。除了上面显示的代码外,我还使用Ajax
提交表单。
这是Ajax代码:
function SaveWebFormToDatabase() {
var formData = new FormData();
//Append the other textboxes with the form data
formData.append("LastName", $("#LastName").val());
formData.append("FirstName", $("#FirstName").val());
formData.append("IsMarried", $("#IsMarried").val());
$.ajax({
type: "POST",
url: "../User/SaveFirstWebForm",
data: formData,
processData: false,
contentType: false,
success: function (data) {
$('#loading_div').hide();
},
error: function (exception) {
console.log(exception);
}
});
}
在控制器端,这是接收呼叫的方法:
[HttpPost]
public JsonResult SaveFirstWebForm(WebApplicationFirstPhase model)
{
string Nme = model.FirstName + model.LastName;
bool ArmedFBit = model.IsMarried;//this is always true!
return Json("");
}
答案 0 :(得分:1)
问题出在jquery选择器设置中。
您可以尝试使用
$('input[name=IsMarried]:checked').val()
代替
$("#IsMarried").val()
获取值,因为您要获取已选中的单选按钮。