Asp.net mvc 4 dropdownlist选择返回null@mvc4

Asp.net mvc 4 dropdownlist选择返回null@mvc4,asp.net-mvc-4,Asp.net Mvc 4,我正在尝试从具有dropdownlist(文本框)的查看页面插入数据库。。当我输入一些东西并点击save时,意味着我从绑定的下拉选择中没有得到任何东西 My code : @model IEnumerable<iWiseapp.Models.LObmodel> @using (@Html.BeginForm("stop", "Home", FormMethod.Post)) { @Html.DropDownList("Data",ViewBag.Data as

我正在尝试从具有dropdownlist(文本框)的查看页面插入数据库。。当我输入一些东西并点击save时,意味着我从绑定的下拉选择中没有得到任何东西

My code :

@model    IEnumerable<iWiseapp.Models.LObmodel>

@using (@Html.BeginForm("stop", "Home", FormMethod.Post))
{


     @Html.DropDownList("Data",ViewBag.Data as SelectList,"select a sdsd",new {id="LOB_ID"})

                @Html.DropDownListFor("sss",new SelectList(Model,"lob_id","lob_name"))
                ,
                @Html.DropDownList("LObmodel", new SelectList(ViewBag.data ,"Value","Text"))

               @Html.DropDownListFor(model => model.lob_name, new SelectList(ViewBag.Titles,"Value","Text"))
我的代码:
@模型IEnumerable
@使用(@Html.BeginForm(“stop”、“Home”、FormMethod.Post))
{
@DropDownList(“Data”,ViewBag.Data作为SelectList,“选择一个sdsd”,new{id=“LOB_id”})
@Html.DropDownListFor(“sss”,新选择列表(型号,“lob\U id”,“lob\U名称”))
,
@DropDownList(“LObmodel”,新选择列表(ViewBag.data,“Value”,“Text”))
@Html.DropDownListFor(model=>model.lob_name,新选择列表(ViewBag.Titles,“Value”,“Text”))
我尝试了所有的可能性,但是没有,我很困惑,什么都没有解决

添加了我的控制代码

[HttpGet]
        public ActionResult stop()
        {
            ServiceReference1.Service1Client ser_obj = new ServiceReference1.Service1Client();

            IEnumerable<LobList> obj = ser_obj.GetData(); //i am Getting list of data through WCF from BUSINESS LAYER WHERE i created entities via EF

        List<SelectListItem> ls = new List<SelectListItem>();

           foreach (var temp in obj)
        {  

            ls.Add(new SelectListItem() { Text = temp.LOB_NAME, Value = temp.LOB_ID.ToString()           });
        }
        //then create a view model on your controller and pass this value to it
        ViewModel vm = new ViewModel();
        vm.DropDown = ls;  // where vm.DropDown = List<SelectListItem>();


  THE COMMENTED CODE BELOW IS WHAT I AM DOING      


            //var mode_obj = new List<LObmodel>(); 
 //Created LOBmodel class in model which is excat same of entities in Business class 

            //var jobList = new List<SelectListItem>();
            //foreach (var job in obj)
            //{
            //    var item = new SelectListItem();
            //    item.Value = job.LOB_ID.ToString(); //the property you want to display i.e. Title
            //    item.Text = job.LOB_NAME;
            //    jobList.Add(item);
            //}
            //ViewBag.Data = jobList;
           return View(jobList);  or return view (obj)
        }
[HttpGet]
公共行动结果停止()
{
ServiceReference1.Service1Client ser_obj=新的ServiceReference1.Service1Client();
IEnumerable obj=ser_obj.GetData();//我通过WCF从我通过EF创建实体的业务层获取数据列表
列表ls=新列表();
foreach(对象中的var temp)
{  
添加(新SelectListItem(){Text=temp.LOB\u NAME,Value=temp.LOB\u ID.ToString()});
}
//然后在控制器上创建视图模型并将此值传递给它
ViewModel vm=新的ViewModel();
vm.DropDown=ls;//其中vm.DropDown=List();
下面的注释代码就是我正在做的
//var mode_obj=新列表();
//在模型中创建了LOBmodel类,该模型与业务类中的实体相同
//var jobList=新列表();
//foreach(obj中的var作业)
//{
//var item=new SelectListItem();
//item.Value=job.LOB_ID.ToString();//要显示的属性,即Title
//item.Text=job.LOB\u NAME;
//工作清单。添加(项目);
//}
//ViewBag.Data=作业列表;
返回视图(作业列表);或返回视图(obj)
}
任何专家建议都将不胜感激

我的领域,这些完美吗

public class template
    {
        public List<LobList> LOBs { get; set; } //LOBLIST FROM Entities in business layer

        public int selectedLobId { get; set; }

        public LobList SelectedLob
        {
            get { return LOBs.Single(u=>u.LOB_ID == selectedLobId) ;}
        }
    }

AND 

public class LObmodel
    {
        public int LOB_ID { get; set; }
        public string LOB_NAME { get; set; }
    }
公共类模板
{
公共列表LOB{get;set;}//业务层中实体的LOBLIST
public int selectedLobId{get;set;}
公共LobList SELECTED LOB
{
获取{返回LOBs.Single(u=>u.LOB_ID==selectedLobId);}
}
}
及
公共类模型
{
public int LOB_ID{get;set;}
公共字符串LOB_NAME{get;set;}
}

我建议将选择列表放入您的模型中,而不是通过查看包传递。您需要的选项是

@Html.DropDownListFor(model => model.lob_name, new SelectList(ViewBag.Titles,"Value","Text"))
您可以通过在控制器上设置model.lob_name来设置所选项目,并在回发时将该值设置为下拉列表的所选值

在您的控制器上,您可以像这样构建列表

List<SelectListItem> ls = new List<SelectListItem>();
foreach(var temp in model){  //where model is your database
    ls.Add(new SelectListItem() { Text = temp.Text, Value = temp.Value });
}
//then create a view model on your controller and pass this value to it
LObmodel vm = new LObmodel();
vm.DropDown = ls;  // where vm.DropDown = List<SelectListItem>();
return View(vm);
使用您的模型添加选择列表

public class LObmodel
{
    public int LOB_ID { get; set; }
    public string LOB_NAME { get; set; }
    public List<SelectListItem> DropDown { get; set; }
}
我也有同样的问题。 但我使用以下代码更改了DDL的视图代码:

 @Html.DropDownListFor(x => x.ClassID, (SelectList)ViewBag.ClassName);

dropdownlist将绑定到名为ClassID的模型类。您将无法将ddl的文本值发布到控制器,只有ddl后面的ID。

非常感谢您的有用见解问题1)将我的列表对象传递到视图,即视图(obj)我收到此错误[传入字典的模型项的类型为'entitymodel.LobList[],但此字典需要'entitymodel.LobList'类型的模型项]好的,请再次回复,伙计。在创建viewmodel obj时,我是否在这里遗漏了一些内容,如上面的显示错误,即缺少类型或命名空间viewmodel。我是否需要添加任何引用创建视图模型所需的引用。在该类中,您定义了要传递给视图的所有字段和列表。然后初始化CLAs、 填充它并将其发送到视图。是的,我正在这样做,请查看我的代码。请参阅我的主要帖子我发布了我的字段2类和控制器方法。因此,在我的代码中使用lobmodel而不是viewmodel,并将列表选择列表项添加到该类以供评论。通过viewbag获取数据实际上不是我的目标:)通过view和strongly类型。如果你也是像我这样的学习者,对mvc来说是非常新的。我建议你放弃上面提到的方法:)无论如何,谢谢你的回复。
@model LObmodel
 @Html.DropDownListFor(x => x.ClassID, (SelectList)ViewBag.ClassName);