c# - Html.GetEnumSelectList 和预选值(编辑页面)
问题描述
public enum PageType
{
[Display(Name = "Brak")]
None = 0,
[Display(Name = "Strona")]
Page = 1,
[Display(Name = "Sklep")]
Shop = 2,
[Display(Name = "Error")]
Error = 3
}
查看模型-ValueTypeEditViewModel
包含( )ValueTypeModel
Conroller
string
对于我正在使用的下拉列表:
<div class="form-group">
<label asp-for="ValueType.Controller" class="m-1"></label>
<div><span asp-validation-for="ValueType.Controller" class="text-danger"></span></div>
<select class="custom-select" asp-for="ValueType.Controller" asp-items="Html.GetEnumSelectList<ValueTypeModel.PageType>()"></select>
</div>
它完美地生成了一个下拉列表,但是当我编辑之前选择的页面时Value Type.Controller
没有选择。在我保存值之前,我必须对值做一些逻辑,wchich 是一个数字(字符串),以将其传输到名称并保存单词。这项工作就像我选择[Display(Name = "Strona")] Page = 1,
然后Value Type.Controller
是一个字符串1
,我必须查找名称并保存到数据库Page
质疑如何使用先前选择的值呈现下拉菜单
解决方案
这不是真正的完整答案 - 只是讨厌解决问题
<div class="form-group">
<label asp-for="ValueType.Controller" class="m-1"></label>
<div><span asp-validation-for="ValueType.Controller" class="text-danger"></span></div>
<select class="custom-select" asp-for="ValueType.Controller">
@foreach (var e in Enum.GetValues(typeof(ValueTypeModel.PageType)).Cast<int>())
{
if (Enum.GetName(typeof(ValueTypeModel.PageType), e) == Model.ValueType.Controller)
{
<option value="@e.ToString()" selected>@Enum.GetName(typeof(ValueTypeModel.PageType), e)</option>
}
else
{
<option value="@e.ToString()">@Enum.GetName(typeof(ValueTypeModel.PageType), e)</option>
}
}
</select>
</div>
推荐阅读
- uuid - 在postgressql中选择varchar列到uuidv5
- datetime - FormatException:日期格式无效 2018-08-1
- c# - 使用 BigInteger 的 Rsa 实现不适用于大数字
- excel - 如何在变量中撤消后保持相交值
- c++ - 在不破坏引用的情况下移动静态库的 *.pdb 文件 - LNK4099
- mysql - mysqldump sql文件保存无内容
- javascript - npm 模块的 jsdoc 注释未出现在 vscode 中
- stripe-payments - Stripe - 为草稿发票创建付款意图 - PHP
- r - 选择效果函数中的变量值 - R
- javascript - 使用 React Native Webview 添加本地 HTML 和 JS 文件