mvc填写下拉列表

时间:2010-03-14 19:33:44

标签: asp.net-mvc linq drop-down-menu

我使用此代码填写下拉列表

ViewData["projectType"] = new SelectList  
  (_dataManager.Project.ProjectTypeList(), "Id", "Name");

但如果我不想使用一个表列而是使用两列或更多列,我必须做什么?例如

ViewData["projectType"] = new SelectList  
  (_dataManager.Project.ProjectTypeList(), "Id", "Name1"+"Name2");

3 个答案:

答案 0 :(得分:4)

只需在模型中添加一个属性 ViewModel:

public partial class Project
{
    public string FullName 
    {
        get { return Name1 + Name2; }
    }
}

并使用此属性:

ViewData["projectType"] = new SelectList(
    _dataManager.Project.ProjectTypeList(), 
    "Id", 
    "FullName"
);

答案 1 :(得分:0)

您随时可以手动填写SelectList

像(我没有测试过):

var list = new SelectList();
var data = _dataManager.Project.ProjectTypeList();

foreach (var d in data){
  list.Add(new SelectListItem  
    (string.Format("{0} {1}",d.Name1,d.Name2), d.Id, isChecked));
}
ViewData["projectType"] = list;

答案 2 :(得分:0)

你应该可以做类似的事情:

ViewData["service_lines"] = new SelectList  
     (repository.SubcontractService_Lines(), "Id", "Name"); 

在存储库中:

    public class SelectService_LineItem  
            {
                public string Name { get; set; }
                public Guid Id { get; set; }
            }

    public IEnumerable<SelectService_LineItem> SubcontractService_Lines() 
    {
        return
            from sl in db.service_lines
            select new SelectService_LineItem
            {
                Name = sl.service_line_name + "" + sl.service_line_name2,
                Id = sl.service_line_id
            };
    }
相关问题