C# 获取要从模型中下拉的值
我正在尝试从ViewModel中提取列表以填充下拉列表。我可以从模型中获取对象并将其传递给视图,但视图只是在下拉列表中显示ViewModel的名称作为值。不知道如何获得下拉列表中的实际值,或者我是否走错了方向。没有超过对象“model.InitialFeesChart”定义的智能。提前感谢您的关注 控制器:对象包含所需的数据C# 获取要从模型中下拉的值,c#,asp.net-mvc,asp.net-mvc-4,razor,C#,Asp.net Mvc,Asp.net Mvc 4,Razor,我正在尝试从ViewModel中提取列表以填充下拉列表。我可以从模型中获取对象并将其传递给视图,但视图只是在下拉列表中显示ViewModel的名称作为值。不知道如何获得下拉列表中的实际值,或者我是否走错了方向。没有超过对象“model.InitialFeesChart”定义的智能。提前感谢您的关注 控制器:对象包含所需的数据 public ActionResult CreateFranchise() { var model = new FranchiseVM();
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);
}
public ActionResult create特许经营()
{
var模型=新的VM();
model.FranStates=新列表{“AZ”、“NV”、“CA”};
//绘制包装标识图,以确定Franshise选择的包装
model.InitialFeesChart=(来自f in_db.InitalFeesCharts
选择new InitalFeesChartVM{IFCPackage=f.IFCPackage}).ToList();
返回视图(模型);
}
视图模型:
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; }
namespace Compass.Models
{
公共级特许经营商
{
[关键]
公共ID{get;set;}
公共字符串{get;set;}
公共字符串名称{get;set;}
公共字符串地址{get;set;}
公共字符串{get;set;}
公共字符串状态{get;set;}
公共字符串FranPostalCode{get;set;}
公共字符串{get;set;}
公共字符串{get;set;}
公共字符串{get;set;}
公共字符串FranOwnerFirstName{get;set;}
公共字符串FranOwnerLastName{get;set;}
公共字符串FranAlternateFirstName{get;set;}
公共字符串名称{get;set;}
公共字符串交换电话{get;set;}
公共字符串{get;set;}
公共字符串IFCPackageCurrent{get;set;}
公共IList状态{get;set;}
//公共IList InitialFeesChart{get;set;}
//增加
public string IFCPackage { get; set; }
private readonly List<InitialFeesChart> _InitialFeesChart;
public IEnumerable<SelectListItem> IFCItems
{
get { return new SelectList(_InitialFeesChart, "InitialFeesID", "IFCPackage"); }
}
}
}
公共字符串IFCPackage{get;set;}
私有只读列表_InitialFeesChart;
公共IEnumerable IFCItems
{
获取{returnnewselectlist(_InitialFeesChart,“InitialFeesID”,“IFCPackage”);}
}
}
}
视图:
@LabelFor(model=>model.IFCPackageCurrent,新的{@class=“controllabel col-md-2”})
@DropDownListFor(model=>model.IFCPackageCurrent,model.IFCItems))
最终工作代码:
视图模型
public IList<InitalFeesChartVM> InitialFeesChart { get; set; }
[Display(Name = "Franchise Package")]
public string IFCPackageCurrent { get; set; }
public IList InitialFeesChart{get;set;}
[显示(Name=“特许经营套餐”)]
公共字符串IFCPackageCurrent{get;set;}
视图:
@LabelFor(model=>model.IFCPackageCurrent,新的{@class=“controllabel col-md-2”})
@DropDownListFor(model=>model.IFCPackageCurrent,新选择列表(model.InitialFeesChart,“InitialFeesID”,“IFCPackage”))
控制器:
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);
public ActionResult create特许经营()
{
var模型=新的VM();
model.FranStates=新列表{“AZ”、“NV”、“CA”};
model.InitialFeesChart=(从_db.InitalFeesCharts中的f选择新的InitalFeesChartVM{IFCPackage=f.IFCPackage,InitialFeesID=f.InitialFeesID});
返回视图(模型);
您需要指定要在选择列表中使用的属性。按如下方式指定值字段和文本字段:选择列表(项目,“Id”、“标题”)
我已经创建了一个使用您的类的提琴。创建选择列表时,您必须更改部件中的字符串值,以便它们与您要从
InitalFeesChartVM
中使用的属性相匹配。您需要指定要在选择列表中使用的属性。指定值字段和文本字段,如下所示s:选择列表(项目,“Id”、“标题”)
我已经创建了一个使用您的类的提琴。创建选择列表时,您必须更改部件中的字符串值,以便它们与您要从
InitalFeesChartVM
中使用的属性相匹配。您需要指定要在选择列表中使用的属性。指定值字段和文本字段,如下所示s:选择列表(项目,“Id”、“标题”)
我已经创建了一个使用您的类的提琴。创建选择列表时,您必须更改部件中的字符串值,以便它们与您要从
InitalFeesChartVM
中使用的属性相匹配。您需要指定要在选择列表中使用的属性。指定值字段和文本字段,如下所示s:选择列表(项目,“Id”、“标题”)
我创建了一个使用您的类的fiddle。创建选择列表时,您必须更改部分中的字符串值,以便它们与您想从
InitalFeesChartVM
中使用的属性相匹配。您以错误的方式使用了帮助程序。请参阅本文如何正确操作-谢谢,在中添加了代码。值但是为空。请参阅我的编辑。不确定如何初始化列表?我猜注释中有一条注释说“假设您填充了_口味…”现在不确定如何填充数据。首先-Juventus18
答案很好(我打开了链接并检查了它)因此,对你来说,最简单的方法就是直接使用它,只需稍作改动,正如他在回答中所解释的那样。在你的例子中,flavors
是model.InitialFeesChart=(从f in_db.InitalFeesCharts中选择新的InitalFeesChartVM{IFCPackage=f.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, 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);