为什么用硬编码的字符串值渲染单选按钮是正确的?

时间:2016-05-11 11:57:00

标签: c# asp.net asp.net-mvc razor

我有样本模型,例如:

public class SimpleModel
{
    public bool SomeProp { get; set; }
    public SimpleModel()
    {
        //code
    }        
}

我希望在视图上呈现属性SomeProp作为单选按钮(2个按钮),例如:

//code
@Html.RadioButtonFor(m => m.SomeProp, Model.SomeProp, new { @id = id }) 
@Html.RadioButtonFor(m => m.SomeProp, !Model.SomeProp, new { @id = id })
//code

当我在视图上切换按钮的值并保存页面并再次获取页面时,我总是看到第一个单选按钮。 如果我选择第一个广播并保存页面并再次获取页面,我会看到已选中第一个广播。如果我选择第二电台并保存页面并再次获取页面,我会看到已选中第一个电台。

我更改了代码,例如:

//code
@Html.RadioButtonFor(m => m.SomeProp, "true", new { @id = id }) 
@Html.RadioButtonFor(m => m.SomeProp, "false", new { @id = id })
//code

这种方式始终是正确的。如果我选择第一个广播并保存页面并重新获取页面,我会看到已选中的第一个广播。如果我选择第二个电台并保存页面并再次获取页面,我会看到已选中的第二个电台。

为什么使用硬编码字符串值渲染单选按钮是正确的?

1 个答案:

答案 0 :(得分:0)

尝试使用Model.SomeProp.ToString()。