在ViewModel中使用RadioButtonFor设置bool值

本文关键字:设置 bool RadioButtonFor ViewModel | 更新日期: 2023-09-27 18:05:22

我有一个相当复杂的形式,但我的问题是与它的一个非常基本的部分。我有一个单选按钮组,其中有两个单选按钮,用于表示视图模型中booltruefalse值。我有一个这样的模型:

public class MyViewModel {
    public bool IsPOBox { get; set; }
}

然后在我的视图中,我有以下代码来生成单选按钮:

@Html.RadioButtonFor(m => m.IsPOBox, true, new { id = "togglePOBoxOn" }) @Html.Label("togglePOBoxOn", "PO Box")
@Html.RadioButtonFor(m => m.IsPOBox, false, new { id = "togglePOBoxOff" }) @Html.Label("togglePOBoxOff", "Street Address")

问题是,当我提交这个与"邮政信箱"选择,IsPOBox属性被设置为false而不是true。实际上,无论选择哪个单选按钮,该属性都被设置为false

我搞砸了什么吗?

在ViewModel中使用RadioButtonFor设置bool值

. NET MVC在提交表单时不包含禁用字段的值。该字段被表单上方的复选框禁用。烦人的!

编辑:看到@JohnSaunders在下面的评论后,我快速搜索了一下我应该如何有一个不可编辑的字段,但仍然有提交的信息。结果是您应该使用readonly属性。我今天学到了一些东西!

<input type="text" readonly />