下拉asp.net核心设置所选项目

时间:2020-04-23 15:22:58

标签: c# razor asp.net-core-mvc

我需要在下拉菜单中设置所选项目

<div class="form-group">
    <label asp-for="Transaction.CCurrency" class="control-label"> Currency </label>

    @(Html.DropDownList("CurrencyDropDownList", Model.Currency, "--Choose currency--", new { @class = "form-control" }))

    <span asp-validation-for="CurrencyDropDownList" class="text-danger"></span>
</div>

我正在控制器中填充它

model.Currency = database.ZCurrency.Where(x => x.LActive == true).Select(c => new SelectListItem
                 {
                     Value = c.CCode.ToString(),
                     Text = c.CName,
                 });

这是我的视图模型

public IEnumerable<SelectListItem> Currency { get; set; }

但是,我不知道如何从数据库中进行设置,我可以通过它访问CCode和Cname,但不能进行设置。这是在我的EDIT表单中,在这里我需要查看以前拥有的值,并在需要时将其重新设置为另一个值。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您只需在SelectListItem中将selected属性设置为true,这将默认在页面中选择此选项。我根据您的代码制作了一个简单的演示,如下所示:

查看:

LogLevel

型号:

<div class="form-group">

    @(Html.DropDownList("CurrencyDropDownList", Model.Currency, "--Choose currency--", new { @class = "form-control" }))

</div>

控制器:

public class ZCurrency
{
    public int CCode { get; set; }
    public string CName { get; set; }
}

public class ViewModel
{
    public IEnumerable<SelectListItem> Currency { get; set; }
}

在这里,我通过将Selected设置为true来设置CCode为2的记录(新的ZCurrency {CCode = 2,CName =“ BBB”})作为选定项。