c# - 在 ASP.NET Core 2.1 中设置选定的选项

标签 c# .net asp.net-core .net-core asp.net-core-2.1

我正在使用 C# 和 asp.net core 2.1 开发 Web 应用程序。

我想要实现的是根据条件动态设置所选选项并输出(isSelected)变量的值,这是我的代码

<select asp-for="SelectedLocation" class="form-control">
    @foreach (var location in Model.Locations)
    {
        var isSelected = location.Number == Model.SelectedLocation ? "selected" : "";
        <option value="@location.Number" data-latitude="@Location.Latitude" data-longitude="@location.Longitude">@location.Title</option>
    }
</select>

最佳答案

使用三元运算符

@(location.isSelected? "selected": "")

您的代码如下所示:

<select asp-for="SelectedLocation" class="form-control">
    @foreach (var location in Model.Locations)
    {
        var isSelected = location.Number == Model.SelectedLocation ? "selected" : "";
        <option value="@location.Number" data-latitude="@Location.Latitude" data-longitude="@location.Longitude" @(location.isSelected? "selected" : "")>@location.Title</option>
    }
</select>

它的作用是:如果 isSelected 为真,它将添加 selected属性,否则它不会添加任何内容。

您也可以将其分解并像普通的 if 语句一样编写,但是我讨厌 VS 中的 Razor 格式,因此我尽可能避免使用 Razor ,因此建议使用三元组。

关于c# - 在 ASP.NET Core 2.1 中设置选定的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51952327/

相关文章:

c# - 在 Form.Dispose() 方法中安全调用

.net - 没有管理员权限,应用程序无法工作

debugging - 调试 .NET Core 源代码 (Visual Studio 2019)

c# - 当原始请求为 HTTPS 时,AspNetCore.WsFederation 获取 signin-wsfed 重定向到 HTTP

c# - 生成订单号

c# - 查找所有父类型(包括基类和接口(interface))

c# - 缓冲时播放视频 : relating buffered bytes to buffered duration

c# - “ExpandoObject”不包含 'PropertyChanged' 的定义

c# - Cefsharp如何获取当前URL地址? C#

asp.net-core - 如何将 Span<Byte> 获取到 Kestrel 中的 HTTP 请求 header