Asp.net mvc deosnt的MVC下拉列表不显示所选值

Asp.net mvc deosnt的MVC下拉列表不显示所选值,asp.net-mvc,model-view-controller,Asp.net Mvc,Model View Controller,我在下面有一个CSHTML页面,这样我就可以编辑一个sugestions模型列表,我已经确定信息正在添加到每一行,但是当我将其更改为下拉列表时,它似乎没有选择sugested bubject Id的任何想法中的值,列表显示良好,但加载时未选择任何信息。 你知道为什么会这样吗 @model List<CISI.Mvc.Models.SuggestionModel> @using Telerik.Sitefinity.UI.MVC @us

我在下面有一个CSHTML页面,这样我就可以编辑一个sugestions模型列表,我已经确定信息正在添加到每一行,但是当我将其更改为下拉列表时,它似乎没有选择sugested bubject Id的任何想法中的值,列表显示良好,但加载时未选择任何信息。 你知道为什么会这样吗

        @model List<CISI.Mvc.Models.SuggestionModel> 
        @using Telerik.Sitefinity.UI.MVC
        @using Telerik.Sitefinity.UI.MVC.Helpers
        <div class="container">
            @using (Html.BeginFormSitefinity("edit", "edit"))
            {

                @Html.ValidationSummary(true)

                <fieldset>
                    <table style="border:4px;">
                        <tr>
                            <td>
                                Subject ID
                            </td>
                            <td>
                                Suggestion order
                            </td>
                            <td>
                                Suggested subject
                            </td>
                        </tr>
                        @for (int i = 0; i < Model.Count; i++)
                        {
                            <tr>
                                <td>@Html.TextBoxFor(m => m[i].subject_id, new { @readonly = "readonly" })
                                </td>
                                <td>@Html.TextBoxFor(m => m[i].suggestion_order)
                                </td>
                                <td>@Html.DropDownListFor(m => m[i].suggested_subject_id, Model[i].sugestedSubject)
                                </td>
                            </tr>
                        }
                    </table>
                    <input type="submit" value="confirm" runat="server" />
                </fieldset>
            }
        </div>

      public List<eLearningSubjectSuggestionModel> getSubjectSuggestionsEdit(int subjectID)
            {
               // moduleSuggsetionList list = new moduleSuggsetionList();
                List<SubjectSuggestionModel> list2 = (from c in db.subject_suggestion_tbl
                                                              where c.subject_id == subjectID && c.deleted == false
                                                              orderby c.suggestion_order
                                                              select new SubjectSuggestionModel
                                                              {
                                                                  subject_id = c.subject_id,
                                                                  suggestion_order = c.suggestion_order,
                                                                  suggested_subject_id = c.suggested_subject_id,
                                                                  //sugestedSubject = getsubjectIEnumLsistSuggestions()

                                                              }).ToList();
                foreach (var i in list2)
                {
                    i.sugestedSubject = getsubjectIEnumLsistSuggestions();
                }
                //list.suggest = list2;
                return list2;
            }
            public IEnumerable<SelectListItem> getsubjectIEnumLsistSuggestions()
            {
                IEnumerable<SelectListItem> selectList = from c in db.subjects_tbl
                                                         select new SelectListItem
                                                         {
                                                             Text = c.subject_title,
                                                             Value = SqlFunctions.StringConvert((double)c.subject_id).Trim()
                                                         };
                return selectList;
            }

 public class SubjectSuggestionModel
    {
        public int? subject_suggestion_id { get; set; }
        public int? subject_id { get; set; }
        public int? suggested_subject_id { get; set; }
        public IEnumerable<SelectListItem> sugestedSubject { get; set; }
        public string suggestedSubjectText { get; set; }
        public int? suggestion_order { get; set; }
    }
@型号列表
@使用Telerik.Sitefinity.UI.MVC
@使用Telerik.Sitefinity.UI.MVC.Helpers
@使用(Html.beginformstefinity(“编辑”、“编辑”))
{
@Html.ValidationSummary(true)
受试者ID
建议令
建议主题
@for(int i=0;im[i].subject_id,新的{@readonly=“readonly”})
@Html.TextBoxFor(m=>m[i].建议顺序)
@Html.DropDownListFor(m=>m[i]。建议的主题id,模型[i]。建议主题)
}
}
公共列表GetSubjectSuggestionEdit(int subjectID)
{
//moduleSuggsetionList=新模块SuggSetionList();
列表2=(从db.subject\u suggestion\u tbl中的c开始)
其中c.subject\u id==subjectID&&c.deleted==false
按c.建议\顺序订购
选择新主题SuggestionModel
{
受试者id=c.受试者id,
建议顺序=c.建议顺序,
建议的主题id=c.建议的主题id,
//sugestedSubject=GetSubjectionEnumlsistSuggestions()
}).ToList();
foreach(列表2中的变量i)
{
i、 sugestedSubject=GetSubjectionEnumlsistSuggestions();
}
//list.suggest=list2;
返回列表2;
}
public IEnumerable GetSubjectionEnumlsistSuggestions()
{
IEnumerable selectList=从c开始,以db.subjects\u tbl为单位
选择新的SelectListItem
{
Text=c.主题与标题,
Value=SqlFunctions.StringConvert((double)c.subject_id).Trim()
};
返回选择列表;
}
公共类主题建议模型
{
public int?subject_suggestion_id{get;set;}
public int?subject_id{get;set;}
公共int?建议的主题id{get;set;}
公共IEnumerable sugestedSubject{get;set;}
公共字符串suggestedSubjectText{get;set;}
公共int?建议_顺序{get;set;}
}

您的问题很可能是您没有将
模型[i].sugestedSubject
中的一个选项设置为在控制器中选中

我猜
Model[I].sugestedSubject
是一个
SelectList
,因此当您添加值时,请确保在
SelectList
构造函数中使用
建议的\u subject\u id
作为
对象selectedValue
参数

getsubjectionumlsistsuggestions
函数中,应添加
subject\u id
参数

public IEnumerable GetSubjectionEnumlsistSuggestions(双主题\u id)

当你拿到名单时,把它传过来

foreach (var i in list2)
{
   i.sugestedSubject = getsubjectIEnumLsistSuggestions(i.subject_id);
}
在函数中,使用此id设置所选项目

public IEnumerable<SelectListItem> getsubjectIEnumLsistSuggestions(double subject_id)
{
    IEnumerable<SelectListItem> selectList = 
        from c in db.subjects_tbl
        select new SelectListItem
        {
            Text = c.subject_title,
            Value = SqlFunctions.StringConvert((double)c.subject_id).Trim(),
            Selected = c.subject_id = subject_id
        };
    return selectList;
}
public IEnumerable GetSubjectionEnumlsistSuggestions(双主题\u id)
{
IEnumerable selectList=
从数据库中的c开始
选择新的SelectListItem
{
Text=c.主题与标题,
Value=SqlFunctions.StringConvert((double)c.subject_id).Trim(),
所选=c.subject\u id=subject\u id
};
返回选择列表;
}

建议的Subject应该是
IEnumerable
。其中一个ID应该与建议的主题ID匹配。

您可以发布您的模型吗?您是否已验证模型包含预期项目。。。尤其是
Model.sugestedSubject
?控制器操作代码,当您在执行时。我已经更新了他们所做的代码,但这仍然是不正确的。我已经添加了更新的代码,在选择列表中,我可以看到所有的Vlaue,但iNormation可以正确选择。