C# 下拉式asp.net核心集所选项目

C# 下拉式asp.net核心集所选项目,c#,razor,asp.net-core-mvc,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 = "for

我需要在下拉列表中设置所选项目

<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>
这是我的观点模型

public IEnumerable<SelectListItem> Currency { get; set; }
public IEnumerable Currency{get;set;}
然而,我不知道如何从我的数据库设置它,我可以通过它访问CCode和Cname,但不知道如何设置它。这是在我的编辑表单中,我需要查看以前的值,并在需要时在另一个上重新设置它


非常感谢,非常感谢您的帮助。

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

视图:


@(Html.DropDownList(“CurrencyDropDownList”,Model.Currency,“--Choose Currency--”,new{@class=“form control”}))
型号:

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

public class ViewModel
{
    public IEnumerable<SelectListItem> Currency { get; set; }
}
公共类ZCurrency
{
公共int代码{get;set;}
公共字符串CName{get;set;}
}
公共类视图模型
{
公共IEnumerable货币{get;set;}
}
控制器:

public IActionResult Index()
    {
        List<ZCurrency> currencies = new List<ZCurrency>
        {
            new ZCurrency{ CCode = 1, CName = "AAA" },
            new ZCurrency{ CCode = 2, CName = "BBB" },
            new ZCurrency{ CCode = 3, CName = "CCC" },
        };
        ViewModel viewModel = new ViewModel();
        viewModel.Currency = currencies.Select(c => new SelectListItem
        {
            Value = c.CCode.ToString(),
            Text = c.CName,
            Selected = c.CCode == 2 ? true: false
        });

        return View(viewModel);
    }
public IActionResult Index()
{
列表货币=新列表
{
新ZCurrency{CCode=1,CName=“AAA”},
新ZCurrency{CCode=2,CName=“BBB”},
新ZCurrency{CCode=3,CName=“CCC”},
};
ViewModel ViewModel=新ViewModel();
viewModel.Currency=currencies.Select(c=>new SelectListItem
{
Value=c.CCode.ToString(),
Text=c.CName,
所选=c.CCode==2?真:假
});
返回视图(viewModel);
}
这里,我通过将selected设置为true,将CCode为2的记录(new ZCurrency{CCode=2,CName=“BBB”})设置为选中项

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

public class ViewModel
{
    public IEnumerable<SelectListItem> Currency { get; set; }
}
public IActionResult Index()
    {
        List<ZCurrency> currencies = new List<ZCurrency>
        {
            new ZCurrency{ CCode = 1, CName = "AAA" },
            new ZCurrency{ CCode = 2, CName = "BBB" },
            new ZCurrency{ CCode = 3, CName = "CCC" },
        };
        ViewModel viewModel = new ViewModel();
        viewModel.Currency = currencies.Select(c => new SelectListItem
        {
            Value = c.CCode.ToString(),
            Text = c.CName,
            Selected = c.CCode == 2 ? true: false
        });

        return View(viewModel);
    }