Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SelectListItem上的文本属性被意外截断_C#_Html_Asp.net Mvc - Fatal编程技术网

C# SelectListItem上的文本属性被意外截断

C# SelectListItem上的文本属性被意外截断,c#,html,asp.net-mvc,C#,Html,Asp.net Mvc,我有一个IEnumerable,我正试图显示其中一个项目的文本,但是,只有相关字段中的第一个单词在显示:输出显示为“4th”,而不是“4th grade” 这就是我填充视图包的方式: public IEnumerable<SelectListItem> GetGradeLevelItems(int selectedGradeLevelId = 0) { var allGradeLevels = _courseRepository.GetAllGradeLevels();

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

这就是我填充
视图包的方式:

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;
}
public IEnumerable GetGradeLevelItems(int-selectedGradeLevelId=0)
{
var allGradeLevels=\u courseRepository.GetAllGradeLevels();
var gradeLevelItems=新列表();
if(selectedGradeLevelId==0)//如果为0,我们将创建一个新课程。让我们在列表中添加一个默认选项
{
添加(新建SelectListItem(){Value=“0”,Text=“--Choose--”,Selected=true});
}
else if(allGradeLevels!=null&&allGradeLevels.All(gl=>gl.GradeLevelId!=selectedGradeLevelId))//如果所选级别不在表中
{
selectedGradeLevelId=AllGradeLevel?.Min(gl=>gl.GradeLevelId)??0;
}
allGradeLevels?.ForEach(gl=>gradeLevelItems.Add(新建SelectListItem()){
Text=gl.GradeLevelName,
值=gl.GradeLevelId.ToString(),
所选=(gl.GradeLevelId==selectedGradeLevelId)
}));
退货项目;
}
以下是我目前掌握的代码:

<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>

@LabelFor(m=>m.GradeLevelId,新的{@class=“row control label details label”})

有人知道我哪里出错了吗?提前感谢您的帮助

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

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


请发布更多代码,m型的类结构是什么?该值被设置为ViewBag属性上的逻辑,在哪里设置ViewBag?你能把逻辑移到控制器上吗?谢谢。应该包括所有相关代码,但如果您还需要其他内容,请告诉我。请验证您的成绩等级数据库表中存储了哪些值(我猜它们来自于此)尝试在属性周围加引号-
value=“@ViewBag…”
@StephenMuecke是的,使用属性周围的引号!谢谢回复!如果您将此添加为解决方案,我很乐意将其标记为解决方案。