C# 使单选按钮具有其开始位置的默认设置
我在模型中声明了一个“PartActionType”,如下所示C# 使单选按钮具有其开始位置的默认设置,c#,html,css,asp.net-mvc,razor,C#,Html,Css,Asp.net Mvc,Razor,我在模型中声明了一个“PartActionType”,如下所示 public enum PartActionType { Transfer, Harvest, Dispose } 在我的视图页面中,我使用此选项显示3个选项 @foreach (var actionType in partActionTypes) { <td> @Html.RadioButtonFor(x
public enum PartActionType
{
Transfer,
Harvest,
Dispose
}
在我的视图页面中,我使用此选项显示3个选项
@foreach (var actionType in partActionTypes)
{
<td>
@Html.RadioButtonFor(x => x.Components[i].SelectedActionType, actionType)
</td>
}
@foreach(partActionTypes中的var actionType)
{
@Html.RadioButton(x=>x.Components[i]。SelectedActionType,actionType)
}
如何将其默认为一个选项对于我的示例,我希望“Transfer”RadioBox成为默认选项
下面是采纳戴维斯的建议后发生的事情
你可以这样做
foreach (var actionType in partActionTypes)
{
if (actionType == PartActionType.Transfer)
<td>
@Html.RadioButtonFor(x => x.Components[i].SelectedActionType, actionType, new {@checked="checked"})
</td>
else
<td>
@Html.RadioButtonFor(x => x.Components[i].SelectedActionType, actionType)
</td>
}
foreach(partActionType中的var actionType)
{
if(actionType==PartActionType.Transfer)
@RadioButton(x=>x.Components[i]。SelectedActionType,actionType,new{@checked=“checked”})
其他的
@Html.RadioButton(x=>x.Components[i]。SelectedActionType,actionType)
}
初始化视图模型时,默认选择的操作类型。永远不要在你的观点中放太多的if-else语句
public ActionResult Index()
{
var vm=新的ItemViewModel
{
ItemId=123,
ItemName=“伪项”,
组件=新列表
{
新的ItemComponentViewModel
{
ComponentD=1,
ComponentName=“第1部分”,
SelectedActionType=PartActionType.Transfer
},
新的ItemComponentViewModel
{
ComponentD=2,
ComponentName=“第2部分”,
SelectedActionType=PartActionType.Transfer
},
...
};
};
返回视图(vm);
}
我不编写razor代码,但我认为您可以在for循环后找到控件并设置select=true,或者编写javascript代码,这样更好!但是,我收到一个错误,运算符“==”不能应用于“object”和“partActionType”类型的操作数,谢谢!但是由于某些原因,它跳过了某些部分,而没有检查任何内容。如果要从持久性存储中获取数据,则可能需要逻辑将任何部分操作类型转换为枚举。我刚想到把动作类型作为enum。你可能不会将它们保存为数据库中的枚举。事实上,是的,问题回来了,我会在我的问题中添加一个屏幕截图。我添加了它。正如您所看到的,大多数值都是经过检查的,但由于某些原因,有些值没有被标记,我不知道它们是如何存储在数据库中的。您可能必须将它们转换为枚举。如果枚举中不存在它们,则必须添加它们。