从模型下拉获取值
本文关键字:获取 模型 | 更新日期: 2023-09-27 17:51:07
我正试图从我的ViewModel中拉出一个列表来填充下拉列表。我可以从模型中获取对象并将它们传递给视图,但视图只是将ViewModel的名称作为下拉菜单中的值显示。不知道如何得到实际值下拉或如果我走错了方向。没有智能超出对象"model.InitialFeesChart"的定义。
控制器:对象包含所需的数据
public ActionResult CreateFranchise()
{
var model = new FranchiseVM();
model.FranStates = new List<string> { "AZ", "NV", "CA" };
//Grap the Package Identificaton to determine Package selected by Franshise
model.InitialFeesChart = (from f in _db.InitalFeesCharts
select new InitalFeesChartVM {IFCPackage = f.IFCPackage}).ToList();
return View(model);
}
ViewModel:
namespace Compass.Models
{
public class FranchiseVM
{
[Key]
public int FranchiseID { get; set; }
public string FranPID { get; set; }
public string FranBusinessName { get; set; }
public string FranAddress { get; set; }
public string FranCity { get; set; }
public string FranState { get; set; }
public string FranPostalCode { get; set; }
public string FranPhonePrimary { get; set; }
public string FranPhonePrimaryCell { get; set; }
public string FranFAX { get; set; }
public string FranOwnerFirstName { get; set; }
public string FranOwnerLastName { get; set; }
public string FranAlternateFirstName { get; set; }
public string FranAlternateLastName { get; set; }
public string FranAlternatePhone { get; set; }
public string FranNotes { get; set; }
public string IFCPackageCurrent { get; set; }
public IList<string> FranStates { get; set; }
//public IList<InitalFeesChartVM> InitialFeesChart { get; set; }
//添加 public string IFCPackage { get; set; }
private readonly List<InitialFeesChart> _InitialFeesChart;
public IEnumerable<SelectListItem> IFCItems
{
get { return new SelectList(_InitialFeesChart, "InitialFeesID", "IFCPackage"); }
}
}
}
视图:
<div class="form-group">
@Html.LabelFor(model => model.IFCPackageCurrent, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownListFor(model => model.IFCPackageCurrent, Model.IFCItems))
</div>
</div>
最终工作代码:
视图模型
public IList<InitalFeesChartVM> InitialFeesChart { get; set; }
[Display(Name = "Franchise Package")]
public string IFCPackageCurrent { get; set; }
视图:
<div class="form-group">
@Html.LabelFor(model => model.IFCPackageCurrent, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownListFor(model => model.IFCPackageCurrent, new SelectList(Model.InitialFeesChart, "InitialFeesID", "IFCPackage"))
</div>
</div>
控制器:
public ActionResult CreateFranchise()
{
var model = new FranchiseVM();
model.FranStates = new List<string> { "AZ", "NV", "CA" };
model.InitialFeesChart = (from f in _db.InitalFeesCharts select new InitalFeesChartVM { IFCPackage = f.IFCPackage, InitialFeesID = f.InitialFeesID }).ToList();
return View(model);
您需要指定在Select List中使用哪些属性。像这样指定值字段和文本字段:SelectList(Items, "Id", "Title")
我已经创建了一个使用您的类的小提琴。当创建选择列表时,您必须更改部件中的字符串值,以便它们与您想要从InitalFeesChartVM
中使用的属性匹配http://dotnetfiddle.net/9052ZH