我有问题在创建操作的视图中创建下拉列表。该视图只显示学号,标题和说明字段,并且对于程序和类别下拉列表没有任何显示。我不知道如何创建SelectList并将其传递给视图。我不知道这是否正确。为创建操作创建下拉列表
public class ServiceForm
{
[Required]
[Display(Name="Student Number")]
public int student_number { get; set; }
[Required]
[Display(Name="Program")]
public SelectList program { get; set; }
[Required]
[Display(Name = "Title")]
public string title { get; set; }
[Required]
[Display(Name = "Description")]
public string description { get; set; }
[Required]
[Display(Name = "Category")]
public SelectList category { get; set; }
}
public class Program
{
public int id { get; set; }
public string program_code { get; set; }
public string program_desc { get; set; }
}
public IEnumerable<ProgramList> GetAllPrograms()
{
var s = ds.programs.OrderBy(m => m.program_code);
return AutoMapper.Mapper.Map<IEnumerable<ProgramList>>(s);
}
private ServiceManager m = new ServiceManager();
private ProgramManager pm = new ProgramManager();
[HttpGet]
public ActionResult Create()
{
ServiceForm form = new ServiceForm();
form.program = new SelectList(pm.GetAllPrograms(), "id", "program_code");
List<SelectListItem> cat = new List<SelectListItem>();
cat.Add(new SelectListItem() { Text = "General", Value = "General", Selected = true });
cat.Add(new SelectListItem() { Text = "Grades", Value = "Grades", Selected = false });
cat.Add(new SelectListItem() { Text = "Time Table", Value = "TimeTable", Selected = false });
cat.Add(new SelectListItem() { Text = "Zenit Account", Value = "Zenit", Selected = false });
form.program = new SelectList(cat, cat.ElementAt(0));
return View(form);
}
[HttpPost]
public ActionResult Create(ServiceAdd newService)
{
if (!ModelState.IsValid)
{
var reform = AutoMapper.Mapper.Map<ServiceForm>(newService);
reform.program = new SelectList(pm.GetAllPrograms(), "id", "program_code");
List<SelectListItem> cat = new List<SelectListItem>();
cat.Add(new SelectListItem() { Text = "General", Value = "General", Selected = true });
cat.Add(new SelectListItem() { Text = "Grades", Value = "Grades", Selected = false });
cat.Add(new SelectListItem() { Text = "Time Table", Value = "TimeTable", Selected = false });
cat.Add(new SelectListItem() { Text = "Zenit Account", Value = "Zenit", Selected = false });
reform.program = new SelectList(cat, cat.ElementAt(0));
return View(reform);
}
return RedirectToAction("Create");
}
我编辑了自己的冠军。请参阅:“[应该在其标题中包含”标签“](http://meta.stackexchange.com/questions/19190/)”,其中的共识是“不,他们不应该”。 – 2014-12-05 18:51:41
好的...我会记住nxt时间 – Nakib 2014-12-05 18:53:15