我了解错误的含义,但在这种情况下不行。 VS的错误列表指向下面的第一行,并说
无法将null转换为“ ScheduleType”,因为它是不可为null的 值类型
@using MyNamespace.ViewModels.Workflow.Schedule
@model ScheduleType
<div class="form-group">
<div id="scheduleTypeRadio">
<div class="btn-group" data-toggle="buttons">
@foreach (var value in Enum.GetValues(Model.GetType()).Cast<ScheduleType>())
{
<label class="btn btn-primary @if(Model == value) { <text>active</text> }">
@Html.RadioButton("scheduleType", value, new { onchange = "if($(this).prop('checked') === true) $(this).closest('form').submit();" })
@if (value == ScheduleType.OnDemand && ((bool?)ViewData["immediateMode"]) == true)
{
@:Immediate
}
else
{
@Html.DisplayFor(m => value)
}
</label>
}
</div>
</div>
</div>
确切的行是
@using MyNamespace.ViewModels.Workflow.Schedule
,该行如何使用ScheduleType
好像可以为空?没有道理。
答案 0 :(得分:0)
看起来您的模型是值类型(枚举)-@model ScheduleType
,然后使用它来获取可能的值-Enum.GetValues(Model.GetType())
我认为您可能希望使用对象类型的模型,并且在获取可能的枚举值的列表时,请尝试:Enum.GetValues(typeof(ScheduleType))