我有示例模型,例如:

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


这样始终可以正确工作。如果我选择第一个广播并保存页面并再次获取页面,我会看到选中的第一个广播。如果我选择第二个收音机并保存页面并再次获取页面,则会看到选中的第二个收音机。

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

最佳答案

尝试Model.SomeProp.ToString()。

10-07 22:31