2015-08-15 83 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);