DropDownList的选择返回null @ mvc4 [英] dropdownlist selection returning null @ mvc4

查看:152
本文介绍了DropDownList的选择返回null @ mvc4的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图插入从视图页面数据库,其中有DropDownList中,文本框的..当我输入一些东西,然后点击保存意味着我得到从被绑定下拉菜单选择罢了。

 我的code:@model IEnumerable的< iWiseapp.Models.LObmodel>@using(@ Html.BeginForm(停止,家,FormMethod.Post))
{
     @ Html.DropDownList(数据,ViewBag.Data为的SelectList,选择一个sdsd,新{ID =LOB_ID})                @ Html.DropDownListFor(SSS,新的SelectList(型号lob_id,lob_name))
                ,
                @ Html.DropDownList(LObmodel,新的SelectList(ViewBag.data,值,文本))               @ Html.DropDownListFor(型号=> model.lob_name,新的SelectList(ViewBag.Titles,值,文本))

我试过上述可能性,但罗我很困惑什么工作了。

加了我CONTROLER code

  [HTTPGET]
        公众的ActionResult停止()
        {
            ServiceReference1.Service1Client ser_obj =新ServiceReference1.Service1Client();            IEnumerable的< LobList>物镜= ser_obj.GetData(); //我公司通过WCF从业务层获取数据的列表,通过我创建EF实体        清单< SelectListItem> LS =新的List< SelectListItem>();           的foreach(OBJ中的VAR温度)
        {            ls.Add(新SelectListItem(){文字= temp.LOB_NAME,值= temp.LOB_ID.ToString()});
        }
        //然后创建您的控制器上一个视图模型并将此值传递给它
        视图模型VM =新视图模型();
        vm.DropDown = LS; //其中vm.DropDown =名单,LT; SelectListItem>();
  注释掉code下面是我在做什么
            // VAR mode_obj =新的List< LObmodel>();
 模型//创建LOBmodel类,这是excat同一实体在商务舱            // VAR作业表=新的List< SelectListItem>();
            //的foreach(OBJ中VAR的工作)
            // {
            // VAR项目=新SelectListItem();
            // item.Value = job.LOB_ID.ToString(); //你想显示即标题属性
            // item.Text = job.LOB_NAME;
            // jobList.Add(项目);
            //}
            //ViewBag.Data =招贤纳才;
           返回查看(作业表);或返回视图(OBJ)
        }

任何专家的建议是AP preciated

我的领域,是这些完美

 公共类模板
    {
        公开名单< LobList> LOB的{搞定;组; } // LOBLIST在业务层实体        公众诠释selectedLobId {搞定;组; }        公共Lob​​List SelectedLob
        {
            {返回LOBs.Single(U => u.LOB_ID == selectedLobId);}
        }
    }和公共类LObmodel
    {
        公众诠释LOB_ID {搞定;组; }
        公共字符串LOB_NAME {搞定;组; }
    }


解决方案

我建议把选择列表到模型中,而不是将其通过视图袋。你想要的选项

  @ Html.DropDownListFor(型号=> model.lob_name,新的SelectList(ViewBag.Titles,值,文本))

可以通过将被设置到的下拉的选定值

的控制器上和后背部该值设定model.lob_name设置所选择的项目

您的控制器上,你可以建立列表像这样

 列表< SelectListItem> LS =新的List< SelectListItem>();
的foreach(模型VAR临时){//其中型号为你的数据库
    ls.Add(新SelectListItem(){文字= temp.Text,值= temp.Value});
}
//然后创建您的控制器上一个视图模型并将此值传递给它
LObmodel VM =新LObmodel();
vm.DropDown = LS; //其中vm.DropDown =名单,LT; SelectListItem>();
返回查看(VM);

然后在您的视图可以引用

  @ Html.DropDownListFor(X => x.lob_name,Model.DropDown)

您的模型添加选择列表

 公共类LObmodel
{
    公众诠释LOB_ID {搞定;组; }
    公共字符串LOB_NAME {搞定;组; }
    公开名单< SelectListItem>下拉{搞定;组; }
}

那么你的视图的顶部将是

  @model LObmodel

I am trying to insert to database from view page which has dropdownlist , textbox's .. when i enter something and click on save means i am getting nothing from dropdown selection which is binded .

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"))

I tried above all possibilities but nah i am confused nothing working out

ADDED MY CONTROLER CODE

[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)
        }

Any expert advice is appreciated

MY FIELDS , IS THESE PERFECT

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; }
    }

解决方案

I would recommend putting the selectlist into your model instead of passing it through the view bag. The option you want is

@Html.DropDownListFor(model => model.lob_name, new SelectList(ViewBag.Titles,"Value","Text"))

you can set the selected item by setting model.lob_name on the controller and on post back that value will be set to the selected value of the dropdown

on your controller you can build the list like this

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

then on your view you can reference that

@Html.DropDownListFor(x => x.lob_name, Model.DropDown)

with your model add the select list

public class LObmodel
{
    public int LOB_ID { get; set; }
    public string LOB_NAME { get; set; }
    public List<SelectListItem> DropDown { get; set; }
}

then the top of your view would be

@model LObmodel

这篇关于DropDownList的选择返回null @ mvc4的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆