2015-08-15 77 views
3

如何创建一个空列表并将所有项目放到列表中,并带有多个控件 以下是我想列入列表的项目;MVC创建列表并填写自动

var memberAdminOrMajor = Db.Members 
    .Where(m => m.MemberType == MemberTypeForReeve.BelediyeBaskani) 
    .OrderBy(m => m.Id) 
    .Select(m => m.Mail) 
    .ToList(); 

var memberBM = Db.Members 
    .Where(m => m.MemberType == MemberTypeForReeve.SahaElemanı) 
    .OrderBy(m => m.Id) 
    .Select(m => m.Mail) 
    .ToList(); 

我试过类似的东西来获取项目dropdownlist;

var list = new List<DropDownListItem>(); 
var MembersForDrop = Db.Members.OrderBy(o => o.Sira) 
    .Where(p=>p.MemberType == (MemberTypeForReeve)2); 

foreach (var temp in MembersForDrop) 
{ 
    list.Add(new DropDownListItem() 
    { 
     Text = temp.Name + "." + temp.SurName, 
     Value = temp.Id 
    }); 
} 

我怎么能得到memberAdminOrMajormemberBM

回答

1

假设你需要在单一视图两种列表。因此,创建一个包含您的列表和其他数据的视图模型:

public class MyViewModel 
{ 
    public IEnumerable<SelectListItem> MemberAdminOrMajors { get; set; } 
    public IEnumerable<SelectListItem> MemberBMs { get; set; } 

    public int SelectedAdmin {get; set;} 
    public int SelectedBM {get; set; } 

    // other data 
} 

在你的操作方法填充视图模型,并传递给视图:

public ActionResult MyAction() 
{ 
    var model=new MyViewModel 
    { 
     MemberAdminOrMajors = Db.Members 
      .Where(m => m.MemberType == MemberTypeForReeve.BelediyeBaskani) 
      .OrderBy(m => m.Id) 
      .Select(m => new SelectListItem{ Text=m.Mail, Value=m.Id }); 

     MemberBMs= Db.Members 
      .Where(m => m.MemberType == MemberTypeForReeve.SahaElemanı) 
      .OrderBy(m => m.Id) 
      .Select(m => new SelectListItem{ Text=m.Mail, Value=m.Id }); 

     // collectiong other data 
    } 
    return View(model); 
} 

查看:

@model MyNamespace.MyViewModel 
@using (Html.BeginForm()) 
{ 
    @Html.DropDownListFor(model => model.SelectedAdmin, Model.MemberAdminOrMajors) 
    @Html.DropDownListFor(model => model.SelectedBM, Model.MemberBMs) 

    <input type="submit" value="submit" class="btn btn-default" /> 
} 

现在如果你有这样的回贴操作,你可以得到用户选择的值:

[HttpPost] 
public ActionResoult MyAction(MyViewModel model) 
{ 
    var adminId = model.SelectedAdmin; 
    var bmId = model.SelectedBM; 
    // rest of code 
} 

但是如果你想玛吉在1和表2列出了你可以写:

​​

concat可以列出:

var newList=memberAdminOrMajor.Concat(memberBM) 
    .Select(m => new SelectListItem{ Text=m.Mail, Value=m.Id }); 
+0

但我需要他们在列表中不作为模型 – furkan

+0

你能解释更多吗?你想如何以及在哪里使用它们? –

+0

好吧,你用myViewModel制作了一个var模型。将其返回到视图。但我不想回报。所以我想在一个增值项目中使用MemberAdminOrMajors和MemberBMs。所以我应该将列表项目合并为1 – furkan

0

我相信你正在寻找的是一个选择列表;然后你不远处。

 var MembersForDrop = 
      Db.Members 
       .OrderBy(o => o.Sira) 
       .Where(p=>p.MemberType == (MemberTypeForReeve)2) 
       .Select(m => new SelectListItem() { Text = string.Format("{0}.{1}", m.Name, m.Surname), Value = m.Id}); 

     SelectList sl = new SelectList(MembersForDrop);