<div class="field">
    <label class="label">
        Priorirty
    </label>
    <select style="width:100%" asp-for="Priority" class="form-select">
        @if (Model.Priority == "Green")
        {
            <option></option>
            <option selected="selected" style="color: green" value="Green">Green</option>
            <option style="color: orange" value="Amber">Amber</option>
            <option style="color: red" value="Red">Red</option>
        }
        @if (Model.Priority == "Amber")
        {
            <option></option>
            <option style="color: green" value="Green">Green</option>
            <option selected="selected" style="color: orange" value="Amber">Amber</option>
            <option style="color: red" value="Red">Red</option>
        }
        @if (Model.Priority == "Red")
        {
            <option></option>
            <option color: green" value="Green">Green</option>
            <option style="color: orange" value="Amber">Amber</option>
            <option selected="selected" style="color: red" value="Red">Red</option>
        }
        @if (Model.Priority == null)
        {
            <option></option>
            <option style="color: green;" value="Green">Green</option>
            <option style="color: orange;" value="Amber">Amber</option>
            <option style="color: red" value="Red">Red</option>
        }
    </select>
</div>

做这样的事.有没有更简单的方法来做这件事?我对剃须刀的语法还很陌生

我什么都没试过

推荐答案

如果将表达式传递给计算结果为falsenull的HTML属性,则根本不会呈现该属性.

   <select style="width:100%" asp-for="Priority" class="form-select">  
      <option></option>
        <option selected="@(Model.Priority == "Green")" style="color: green" value="Green">Green</option>
        <option selected="@(Model.Priority == "Amber")" style="color: orange" value="Amber">Amber</option>
        <option selected="@(Model.Priority == "Red")" style="color: red" value="Red">Red</option>
    </select>

但实际上,您根本不需要设置selected属性值.通过为Model.Priority赋值, Select 标记帮助器将为您完成此操作,因为您为该属性设置了asp-for属性.

Csharp相关问答推荐

如何使用ConcurentDictionary属性上的属性将自定义System.Text.Json JsonConverter应用于该属性的值?

FileStream. FlushAsync()是否确保文件被写入磁盘?

Microsoft. VisualBasic. FileIO. FileSystem. MoveFile()对话框有错误?

通过条件列表删除/更新EF Core 7中的实体的有效方法

Cosmos SDK和Newtonsoft对静态只读记录的可能Mutations

当前代码Cosmos DB 3.37.1:PartitionKey key key mismatch exception

为什么C#认为这个非托管 struct 有一个重叠

如何将字符串变量传递给JObject C#-无法加载文件或程序集';System.Text.Json

TagHelpers在新区域不起作用

在.NET 8最低API中从表单绑定中排除属性

EF核心新验证属性`DeniedValues`和`StringCompison`不起作用

C#多键字典和TryGetValue

用C#从XML内部元素中获取特定值

如何返回具有泛型的类?

为什么Azure函数(独立工作进程)索引失败?使用Azure App配置的CosmosDbTrigger绑定失败,未解析为值

如何从非异步任务中正确返回TypeResult

ASP.NET核心中的授权,如何在DbContext启动之前提供租用ID

从具有泛型类型约束的类继承-Blazor

Roslyn编译器看不到引用

如何从哈希表中获取列表字符串?