C# 获取要从模型中下拉的值

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();

我正在尝试从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);
    }
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);