如何在 csharp cshtml ASP.NET 中的 select 选项下拉列表中打印 selected 字符串?

How to print selected string in select option drop down in csharp cshtml ASP.NET?

我是 ASP.NET 的新人。 我尝试在 select 选项下拉菜单中打印 selected 字符串,但出现编译错误。

Compilation Error Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.

Compiler Error Message: CS0201: Only assignment, call, increment, decrement, await, and new object expressions can be used as a statement

这是我的 cshtml 代码。

@{ string FromAMPM = "AM";  }

<select id="FromAMPM" name="FromAMPM" class="form-control js-select">
<option value=""></option>
<option value="AM" @if (FromAMPM == "AM") { "selected"; } else { ""; }>AM</option>
<option value="PM" @if (FromAMPM == "PM") { "selected"; } else { ""; }>PM</option>
</select>

怎么了?谢谢

最好的方法是分开逻辑和 html

 @{
    var FromAMPM = "PM";
    
    var items = new List<SelectListItem>
    {  
        new SelectListItem { Value= "",   Text="Select" },
        new SelectListItem { Value= "AM",  Text="AM" },
        new SelectListItem { Value="PM",   Text="PM"}
    };
}

您不需要 select 代码,它会自动 select asp-for 值

<select id="fromAMPM" asp-for="@FromAMPM" class="form-control js-select" asp-items="@items"></select>

您可以在您的情况下使用 ternary conditional operator

@{ string FromAMPM = "AM";  }

<select id="FromAMPM" name="FromAMPM" class="form-control js-select">
  <option value=""></option>
  <option value="AM" @(FromAMPM == "AM" ? "selected='selected'" : "")>AM<</option>
  <option value="PM" @(FromAMPM == "PM" ? "selected='selected'" : "")>PM<</option>
</select>