C# 创建RadioButton列表的正确方法,默认情况下无需选中任何RadioButton

C# 创建RadioButton列表的正确方法,默认情况下无需选中任何RadioButton,c#,asp.net-mvc,C#,Asp.net Mvc,可为空的标识符使radiobuttonlist在第一页加载时默认不检查任何RadioButton。这是处理这种情况的正确方法吗?或者什么是最佳实践 型号: [Required] public SomeEnum? Choices { get; set; } public enum SomeEnum { OptionOne, OptionTwo } 视图: @Html.ValidationMessageFor(x=>x.Choices) @RadioButton(x=>x.Ch

可为空的标识符使radiobuttonlist在第一页加载时默认不检查任何RadioButton。这是处理这种情况的正确方法吗?或者什么是最佳实践

型号:

[Required]
public SomeEnum? Choices { get; set; }

public enum SomeEnum
{
    OptionOne,
    OptionTwo
}
视图:


@Html.ValidationMessageFor(x=>x.Choices)
@RadioButton(x=>x.Choices,SomeEnum.OptionOne)
@RadioButton(x=>x.Choices,SomeEnum.OptionTwo)
呈现的HTML:

<div>
    <input name="Choices" id="Choices" type="radio" data-val-required="The Choices field is required." data-val="true" value="OptionOne"></input>
    <input name="Choices" id="Choices" type="radio" value="OptionTwo"></input>
</div>

是的,您使用的是最佳模型来表示没有默认值的单选列表。这正是
null
的正确用途


这种方法的一个优点是,
[Required]
属性可以很容易地验证选项是否已被选中。

对于单选按钮,最佳做法是在该选项适用时添加一个“无”按钮。@abatishchev通过从主题/主题中删除“MVC”字。。这不会影响谷歌爬虫机器人,并将页面/问题在搜索结果中排名较低吗?因为我认为在url中有这个词是非常重要的,现在它已经不存在了。把一个标签放在标题中是一个常见的错误做法,删除它也是一个常见的做法:)标签行是专门为标签设计的。此外,最流行的标签(在本例中为c#)也将自动放置。不要害怕正确的标签比标题更重要。我明白你的意思,但我仍然看到从URL中删除MVC这个词会影响谷歌排名。至少这是我在网络开发者的日子里学到的。你能更详细地解释最后一段吗?我想我理解它,但不是100%确定,因为我还没有测试过None选项。谢谢为了更清楚,我修改了我的答案。另一种(不太有效的)方法是添加一个名为
None
的枚举值作为默认选项。您不会呈现此选项的单选按钮,但它会阻止默认情况下选择选项1和选项2。这种策略的一个缺点是,
[Required]
选项不会起任何作用。当然,现在我完全明白了!谢谢你的澄清!
<div>
    <input name="Choices" id="Choices" type="radio" data-val-required="The Choices field is required." data-val="true" value="OptionOne"></input>
    <input name="Choices" id="Choices" type="radio" value="OptionTwo"></input>
</div>