【问题标题】:How to set the dropdown display default to "Medium" and not to be "High"?如何将下拉显示默认设置为“中”而不是“高”?
【发布时间】:2013-07-11 07:05:44
【问题描述】:

代码:

public enum PriorityEnum
{
    High,
    Medium,
    Low
}

IQueryable<PriorityValues> priorityValues = _enumReadService.GetRecords<PriorityValues>();

var creationOptions = new CreationOptions
{
    PriorityValues = priorityValues.ToList()
};

我的下拉菜单默认显示为 “高”。但需要“中等”。如何将下拉显示默认设置为“中”而不是“高”?

更新:添加渲染下拉代码

<b>@Html.Label("Priority:")</b>
@Html.DropDownListFor(x => x.PriorityValueId, Enum.GetValues(typeof (PriorityValueEnum)).OfType<PriorityValueEnum>().ToList().Select(x => new SelectListItem {Text = x.ToString(), Value = ((int) x).ToString(CultureInfo.InvariantCulture)}))

【问题讨论】:

    标签: c# linq c#-4.0 asp.net-mvc-4


    【解决方案1】:

    您尚未展示如何渲染 DropDown,但如果您使用了以下内容:

    @Html.DropDownListFor(x => x.Priority, Model.PriorityValues)
    

    您需要做的就是将控制器操作中的Priority 属性的值设置为所需的结果:

    IEnumerable<SelectListItem> priorityValues = ...
    model.PriorityValues = priorityValues;
    model.Priority = (int)PriorityEnum.Medium;
    return View(model);
    

    【讨论】:

    • 我通过添加渲染代码更新了我的问题。如何设置下拉显示默认为“中”?谢谢。
    • 如我的回答所示,在您的控制器操作中,您应该在控制器操作中将PriorityValueId 设置为所需的值:model.PriorityValueId = (int)PriorityEnum.Medium;
    • 谢谢,工作正常。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-25
    相关资源
    最近更新 更多