SelectListItem的Text属性被意外截断

本文关键字:意外 属性 Text SelectListItem | 更新日期: 2023-09-27 18:21:19

我有一个IEnumerable<SelectListItem>,我正在尝试显示其中一个项目的文本,但是,只有相关字段中的第一个单词显示:输出显示为"4th",而不是"4th grade"。

这就是我填充ViewBag:的方式

public IEnumerable<SelectListItem> GetGradeLevelItems(int selectedGradeLevelId = 0)
{
    var allGradeLevels = _courseRepository.GetAllGradeLevels();
    var gradeLevelItems = new List<SelectListItem>();
    if (selectedGradeLevelId == 0) //if 0, we're creating a new course. Let's add a default option to the list
    {
        gradeLevelItems.Add(new SelectListItem() { Value = "0", Text = "--Choose--", Selected = true });
    }
    else if (allGradeLevels != null && allGradeLevels.All(gl => gl.GradeLevelId != selectedGradeLevelId)) //if the selected grade level is not in the table
    {
        selectedGradeLevelId = allGradeLevels?.Min(gl => gl.GradeLevelId) ?? 0;
    }
    allGradeLevels?.ForEach(gl => gradeLevelItems.Add(new SelectListItem(){
        Text = gl.GradeLevelName,
        Value = gl.GradeLevelId.ToString(),
        Selected = (gl.GradeLevelId == selectedGradeLevelId)
    }));
    return gradeLevelItems;
}

这是我现在的代码:

<div class="form-group">
    @Html.LabelFor(m => m.GradeLevelId, new {@class = "row control-label details-label"})
    <div class="row">
        <input class="form-control" type="text" disabled value=@ViewBag.GradeList[(int)(@Model.GradeLevelId ?? 0)].Text />    
    </div>
</div>

有人看到我哪里错了吗?提前感谢您的帮助!

SelectListItem的Text属性被意外截断

您需要在属性值周围添加引号

<input class="form-control" type="text" disabled value="@ViewBag.GradeList[(int)(@Model.GradeLevelId ?? 0)].Text" />