如何在mvc razor视图中的一个视图中的特定时间获取和插入数据?我的意思是在创建视图中填充数据库的下拉列表。
我想在添加主题和骗子模型时填写以下内容。
骗子模型:
namespace firstapp.Models
{
public class chepter
{
[ForeignKey("dip_id")]
public int dipart_id { get; set; }
public int chep_id { get; set; }
public string subject { get; set; }
public string chepter { get; set; }
public List<dipartment> dipartlist { get; set; }
public List<dipartment> stdlist { get; set; }
public List<dipartment> semlist { get; set; }
public List<dipartment> stremlist { get; set; }
}
}
部门模型:
namespace firstapp.Models
{
public class dipartment
{
public int dip_id { get; set; }
public string dipart { get; set; }
public string std { get; set; }
public string sem { get; set; }
public string strem { get; set; }
}
}
答案 0 :(得分:0)
@Html.DropDownListFor(model => model.dipart_id, new SelectList(Model.dipartlist.Select(s => new SelectListItem() { Value = s.dip_id, Selected = false, Text = s.dipart })), "Select")
答案 1 :(得分:0)
更改模型,以便列表属性为选择列表:
public SelectList<dipartment> dipartlist { get; set; }
然后,当你填充模型时,调用一个服务类方法(你可能没有服务层,我只想在控制器中没有数据库调用)
dipartlist = _departmentService.GetAsSelectList();
GetAsSelectList
服务方法如下所示:
public SelectList GetAsSelectList()
{
return (from d in _context.Set<department>().OrderBy(x => x.dipart)
select new
{
Id = d.dipart_id,
Name = d.dipart
}).ToList();
}
最后你的看法:
@Html.DropDownListFor(model => model.dipart_id, Model.dipartlist)
此技术意味着您在视图或控制器中没有linq。此外,由于您只在一个位置(服务)创建选择列表,因此可以使用MemoryCache对其进行缓存,以防止对同一数据的多个请求。而且看起来你正在填充4个选择列表,这可能很有用。