我正在努力实现两个条件:
1)如果用户选择设备ID值为'其他设备',则应出现设备名称提示(用户必须输入设备名称的值)。
2)如果用户为设备ID选择了一些其他值,则该选定值应自动分配给DeviceName字段,用户无需为该问题输入值(问题2应跳过并移至最终问题)。 /> 的型号:
public class ITRequestQuery
{
[Optional]
[Template(TemplateUsage.NoPreference, "Other Device")]
public string DeviceID { get; set; }
[Prompt("Enter Device Name")]
public string DeviceName { get; set; }
[Prompt("Please explain me more about your request! I will forward it to our IT Team.")]
public string Description { get; set; }
}
方式
return new FormBuilder<ITRequestQuery>()
.Field(new FieldReflector<ITRequestQuery>(nameof(ITRequestQuery.DeviceID))
.SetActive((state) =>
{
return assetID != null && assetID.Count > 0;
})
.SetType(null)
.SetDefine((state, field) =>
{
foreach (var prod in AssetIds())
field
.AddDescription(prod, prod)
.AddTerms(prod, prod);
return Task.FromResult(true);
}))
.Field(new FieldReflector<ITRequestQuery>(nameof(ITRequestQuery.DeviceName))
.SetActive((state1)=> {
if (state1.DeviceID == null)
return true;
else
return false;
}
))
.Field(nameof(ITRequestQuery.Description))
.AddRemainingFields()
.Build();
我被困在这里,
if (state1.DeviceID == null)
return true;
实际上,这个条件应该显示第二个问题,但它再次进入第一个问题。