Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使单选按钮具有其开始位置的默认设置_C#_Html_Css_Asp.net Mvc_Razor - Fatal编程技术网

C# 使单选按钮具有其开始位置的默认设置

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

我在模型中声明了一个“PartActionType”,如下所示

    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。你可能不会将它们保存为数据库中的枚举。事实上,是的,问题回来了,我会在我的问题中添加一个屏幕截图。我添加了它。正如您所看到的,大多数值都是经过检查的,但由于某些原因,有些值没有被标记,我不知道它们是如何存储在数据库中的。您可能必须将它们转换为枚举。如果枚举中不存在它们,则必须添加它们。