Asp.net mvc 创建@Html.RadioButtonFor(ASP.NET MVC4)
这是任务模式Asp.net mvc 创建@Html.RadioButtonFor(ASP.NET MVC4),asp.net-mvc,asp.net-mvc-4,razor,Asp.net Mvc,Asp.net Mvc 4,Razor,这是任务模式 namespace TaskManager.Models { public class Task { private const int DefaultTaskPriority = 1; //some other properties [DefaultValue(DefaultTaskPriority)] public TaskPriority Priority { get; set; }
namespace TaskManager.Models
{
public class Task
{
private const int DefaultTaskPriority = 1;
//some other properties
[DefaultValue(DefaultTaskPriority)]
public TaskPriority Priority { get; set; }
}
public enum TaskPriority
{
[Display(Name = "Low")]
Low = 0,
[Display(Name = "Default")]
Normal = 1,
[Display(Name = "High")]
High = 2,
[Display(Name = "Extreme")]
Extreme = 3
}
}
这是我观点的一部分
<div class="form-group">
@Html.LabelFor(u => u.Priority)
<div class="radio">
<label>@Html.RadioButtonFor(model => model.Priority, 0) Low</label>
</div>
<div class="radio">
<label>@Html.RadioButtonFor(model => model.Priority, 1, new { Checked = "checked" }) Default</label>
</div>
<div class="radio">
<label>@Html.RadioButtonFor(model => model.Priority, 2) High</label>
</div>
<div class="radio">
<label>@Html.RadioButtonFor(model => model.Priority, 3) Extreme</label>
</div>
@Html.ValidationMessageFor(u => u.Description, null, new {@class = "error"})
</div>
您不应该设置
new{Checked=“Checked”}
-它是优先级的值,它将决定选择什么(这就是模型绑定的工作原理。您还可以将int值替换为TaskPriority.Low
,TaskPriority.Normal
等。如果我没有设置new{Checked=“Checked”},您可以始终创建一个扩展方法来获取显示名称
未选择此单选按钮,我希望用户查看默认情况下选择的选项。错误。如果优先级的值为TaskPriority.Normal
,则将选择第二个(如果未明确设置,则默认为TaskPriority.Low
)。不要试图覆盖MVC的模型绑定功能。另一个建议是添加new{id=''}
以删除每个单选按钮中重复的id
属性,并且@Html.LabelFor(u=>u.Priority)
有点毫无意义(您已经有了与每个按钮关联的标签)所以它应该是@Html.DisplayNameFor(m=>m.Priority)
<div class="form-group">
@Html.LabelFor(u => u.Priority)
<div class="radio">
<label>@Html.RadioButtonFor(model => model.Priority, TaskPriority.Low) Low</label>
</div>
<div class="radio">
<label>@Html.RadioButtonFor(model => model.Priority, TaskPriority.Normal) Normal</label>
</div>
<div class="radio">
<label>@Html.RadioButtonFor(model => model.Priority, TaskPriority.High) High</label>
</div>
<div class="radio">
<label>@Html.RadioButtonFor(model => model.Priority, TaskPriority.Extreme) Extreme</label>
</div>
@Html.ValidationMessageFor(u => u.Description, null, new {@class = "error"})
</div>