我使用这部分代码从我的数据库中获取信息,使用Entity Framework,并在IEnumerable属性中添加所有信息,最后是DropDownListFor显示。 我需要多次使用那种代码,所以我想让它成为最强大的代码。
public IEnumerable<SelectListItem> Functions { get
{
List<SelectListItem> result = new List<SelectListItem>();
using (followupconsultantEntities dataModel = new followupconsultantEntities())
{
var myEvents = from e in dataModel.functions
select e;
foreach (var function in myEvents)
{
SelectListItem myList = new SelectListItem
{
Value = function.ID_Function.ToString(CultureInfo.InvariantCulture),
Text = function.FU_Name
};
result.Add(myList);
}
}
return result;
} }
感谢您的帮助
观点:
<div class="editor-field">
<%: Html.DropDownListFor(m => m.SelectedFunction,Model.Functions) %>
</div>
有关信息,我的控制员:
public ActionResult Register()
{
ViewData["PasswordLength"] = MembershipService.MinPasswordLength;
return View(new RegisterModel());
}
答案 0 :(得分:1)
开始使用 System.Web.Mvc.SelectList 。
public IEnumerable<SelectListItem> Functions { get
{
using (followupconsultantEntities dataModel = new followupconsultantEntities())
{
return new SelectList(dataModel.functions.ToArray(), "ID_Function", "FU_Name");
}
}
另请考虑 AutoMapper 。
答案 1 :(得分:1)
试试这个。在此代码中,您将无法从不需要的数据库数据中获取。
public IEnumerable<SelectListItem> Functions { get
{
using (followupconsultantEntities dataModel = new followupconsultantEntities())
{
return new SelectList(dataModel.functions.Select(f=>
new
{
Value = function.ID_Function.ToString(CultureInfo.InvariantCulture),
Text = function.FU_Name
})
.ToArray(), "Value", "Text");
}
}