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