我首先在mvc4(razor)中将实体与db一起使用
要求:我有sp返回ID和显示名称,我需要在@ html.listbox中显示名称,因为我使用了接口从存储过程中获取详细信息。当我从存储过程中获得了控制器中的结果时,我对保存感到震惊结果到列表框,我不知道如何将其存储在列表框中。我被控制器代码打扰了,请帮忙。
代码:
public class projService :Iproj
{
project dbContext;
public projService()
{
dbContext = new projectEntities();
}
public List<GetResourceOrderDisplay_Result> Getresorderdisplay()
{
List<GetResourceOrderDisplay_Result> oGetresorderdisplay = new List<GetResourceOrderDisplay_Result>();
oGetresorderdisplay = dbContext.GetResourceOrderDisplay().ToList();
return oGetresorderdisplay.ToList();
}
}
控制器:
public ActionResult testview()
{
List<GetResourceOrderDisplay_Result> listboxdata = new List<GetResourceOrderDisplay_Result>();
listboxdata = _Scheduler.Getresorderdisplay();
ListboxViewModel objListboxViewModel = new ListboxViewModel();
//struck with the follwing line.
objListboxViewModel.resourcename=listboxdata ????
return View(objListboxViewModel);
}
看法:
@model project.ViewModels.ListboxViewModel
@Html.ListBoxFor( m=> m.resourcename,Model.resourcename, new { @class = "resList",style="height: 462px;"})
模型:
public class ListboxViewModel
{
public string resourceid{get; set; }
//listbox Values
public List<SelectListItem> resourcename{get; set;}
}
编辑:GetResourceOrderDisplay_Result
using System;
using System.Collections.Generic;
namespace proj.Data
{
public partial class GetResourceOrderDisplay_Result
{
public int ID { get; set; }
public string DisplayName { get; set; }
}
}
Edit2:这是更新后出现的错误:
**Edit 3:**
基本上,您需要做的就是将您从数据库中检索到的列表数据转换为一个List<SelectListItem>
可以显示的列表数据。该Linq
Select
方法使此操作非常简单:
objListboxViewModel.resourcename =
listboxdata.Select(x => new SelectListItem() { Text = x.DisplayName,
Value = x.ID.ToString() })
.ToList();
因此,将Text
和Value
属性设置为什么取决于GetResourceOrderDisplay_Result
外观的定义和属性。在Select
方法中,x
代表listboxdata
列表的单个元素,并且属于类型GetResourceOrderDisplay_Result
,因此您可以访问的属性x.Property
。在Select
以这种方式构成方法将返回一个新的列表SelectListItem
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句