C# 在ASP.NET Core的Razor中设置条件属性
我试过了,但在最新版本的ASP.NET Core中似乎处理方式有所不同。我没有从中选择任何C# 在ASP.NET Core的Razor中设置条件属性,c#,asp.net,asp.net-mvc,razor,asp.net-core,C#,Asp.net,Asp.net Mvc,Razor,Asp.net Core,我试过了,但在最新版本的ASP.NET Core中似乎处理方式有所不同。我没有从中选择任何属性: <select class="form-control" asp-for="Status"> <option></option> @foreach (var option in Enum.GetNames(typeof(StatusOptions))) { <option value="@option" @{if (optio
属性:
<select class="form-control" asp-for="Status">
<option></option>
@foreach (var option in Enum.GetNames(typeof(StatusOptions))) {
<option value="@option" @{if (option == Model.Status) { <text>selected="true"</text> } }>@option</option>
}
</select>
我可以使用它,但我必须忽略警告,它不能完全呈现我想要的效果。有没有办法得到:
<option value="firstOption" selected>firstOption</option>
firstOption
尝试此操作并确保型号。状态
将与foreach中的选项
类型相同
<select class="form-control" asp-for="Status">
<option></option>
@foreach (var option in Enum.GetNames(typeof(StatusOptions))) {
<option value="@option" @{option == Model.Status ? "selected" : ""} }>@option</option>
}
</select>
@foreach(Enum.GetNames中的var选项(typeof(StatusOptions))){
@选择权
}
我想我不会在这里列举StatusOptions。我可能会把它作为我的模型上的一个属性
public List<SelectListItem> StatusOptions => Enum.GetNames(typeof(StatusOptions)).Select(o => new SelectListItem {
Text = o,
Value = o,
Selected = o == this.Status
}).ToList();
这应该可以满足您的需要。您不需要设置selected
属性。标记帮助器根据绑定到的属性的值执行此操作。-<代码>
是否有办法将空的第一个选项添加到该帮助器中,或者是否需要将其插入到状态选项列表中?是。。。可以为空选项添加所需的字符串:
public List<SelectListItem> StatusOptions => Enum.GetNames(typeof(StatusOptions)).Select(o => new SelectListItem {
Text = o,
Value = o,
Selected = o == this.Status
}).ToList();
@Html.DropDownListFor(m => m.Status, Model.StatusOptions, new { @class="form-control", asp_for = "status" })