以下片段打破了剃刀解析和智能感知,U不知道为什么它没有工作(是的,我确实找到了解决办法,但它仍然让我感到烦恼)。
<select class="form-control" @(ViewBag.View ? "disabled" : string.Empty) asp-for="repetitiveness" asp-items="Html.GetEnumSelectList<TaskRepetitiveness>()">
@if (ViewBag.View)
{
<option selected="selected" value="">@(EnumHelper<TaskRepetitiveness>.GetDisplayValue(Model.repetitiveness))</option>
}
</select>
已禁用的案例正在评估正常,但空字符串案例似乎有问题(以下是使用浏览器测试后的输出):
<select class="form-control" asp-for="repetitiveness" asp-items="Html.GetEnumSelectList<TaskRepetitiveness>()"></select>
这是intellisense打破行动:
附:它仍然与标记帮助器的大括号打破:
答案 0 :(得分:0)
Razor仅在标记中包含在引号内并分配给HTML属性时才有效。换句话说,类似下面的内容应该有效:
<select class="form-control" disabled="@(ViewBag.View as bool? ?? false)" asp-for="repetitiveness" asp-items="Html.GetEnumSelectList<TaskRepetitiveness>()">
这看起来似乎不起作用,因为完全指定disabled
会导致字段被禁用,但Razor足够聪明,如果属性为false则删除该属性。