作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要一些有关使用标记帮助程序的 ENUM 下拉列表的帮助。
我发现很多将模型绑定(bind)到 Selectlist 的示例,有些使用 ENUM,但所有这些示例都与 CREATE 操作有关,而我面临着 EDIT 操作的问题。
我的模型
public class ProspectLog
{
public int Id { get; set; }
public int IdProspect { get; set; }
public int IdEmpresa { get; set; }
public DateTime Criado { get; set; }
public string Usuario { get; set; }
public string Descricao { get; set; }
public ETipoLog TipoLog { get; set; }
public enum ETipoLog
{
[Display(Name = "CADASTRO")]
Cadastro = 0,
[Display(Name = "CONTATO")]
Contato = 1,
[Display(Name = @"TROCA ETAPA")]
Troca = 2,
[Display(Name = @"QUALIFICAÇÃO")]
Qualifica = 3,
[Display(Name = @"EDIÇÃO")]
Edicao = 4
}
}
在我基于 MVC5 的旧项目中,我只是在我的 View 上使用了它,这就足够了。
下拉菜单
<div class="form-group col-sm-6">
<label style="font-weight: bolder" for="txtSituacao">Situação</label>
@Html.EnumDropDownListFor(model => model.Situacao, htmlAttributes: new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.Situacao, "", new { @class = "text-danger" })
</div>
我尝试了不同的方法,但无法在编辑操作上选择数据库项目来设置下拉列表。我尝试过这种方法:
<div class="form-group">
<label asp-for="TipoLog" class="col-md-2 control-label"></label>
<div class="col-md-10">
<select asp-for="TipoLog" class="form-control"></select>
<span asp-validation-for="TipoLog" class="text-danger"></span>
</div>
</div>
我也这样尝试过:
<div class="form-group">
<label asp-for="TipoLog" class="col-md-2 control-label"></label>
<div class="col-md-10">
<select asp-for="TipoLog" asp-items="Html.GetEnumSelectList<TipoLog>()"></select>
<span asp-validation-for="TipoLog" class="text-danger"></span>
</div>
</div>
我还尝试将模型列表绑定(bind)到 Controller 上的 ViewBag,如下所示:
Controller :
ViewBag.Log = new SelectList(lista, "Id", "Nome");
查看:
<div class="form-group col-sm-2">
<label asp-for="TipoLogo" class="col-md-2 control-label"></label>
<select asp-for="TipoLogo" asp-items="ViewBag.Log" class="form-control"></select>
<span asp-validation-for="TipoLogo" class="text-danger"></span>
</div>
它部分工作,下拉列表列出了项目,但没有从数据库中选择正确的项目。它显示列表中的第一个被选中。
最佳答案
终于找到解决办法了!
这看起来并不明显,但这样我就没有编译错误!我从 Ivan 得到的答案并没有错误,但有必要在 View 上导入 CRM.Model
,如下所示:
@using CRM.Model;
所以,我的下拉菜单:
<select asp-for="TipoLog" asp-items="Html.GetEnumSelectList<ETipoLog>()" class="form-control"></select>
你可以看到,Visual Studio 告诉我这是不必要的,将其绘制为灰色,但如果没有的话,我会收到编译错误。我希望我能帮助别人。
关于asp.net-mvc - 在 ASP.NET Core MVC 中选择 ENUM 标记帮助器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44761915/
我是一名优秀的程序员,十分优秀!