如何使用.Net MVC 5从DropDownList中显示两个独立列中的数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用.Net MVC 5从DropDownList中显示两个独立列中的数据相关的知识,希望对你有一定的参考价值。

我是ASP.Net MVC 5中的新学生开发人员。我需要在插入SQL时从我的两个单独的表列中获取一个数据,但我只在DropDownList中使用一个值。我怎样才能做到这一点?根据我的研究,没有正确的信息或来源。有人帮我吗?

模型:

public class PersonelModel
      
        public int pid  get; set; 
        public string pAd  get; set; 
        public string pSoyad  get; set; 
        public string yonetici  get; set;  
    

我的添加方法:

public ActionResult PersonelAdd()


    /*it does not work
     ViewBag.yonetici = new SelectList(db.Personel, "pAd", "pAd" +" "+ "pSoyad");*/

    /*it work*/
    ViewBag.yonetici = new SelectList(db.Personel, "pAd", "pAd");

    return View();


[HttpPost]
public ActionResult PersonelAdd(Personel pModel)

    var personel = new Personel();
    personel.pAd = pModel.pAd;
    personel.pSoyad = pModel.pSoyad;
    personel.yonetici = pModel.yonetici;
    /*it works*/
    ViewBag.yonetici = new SelectList(db.Personel, "pAd", "pAd", pModel.yonetici
    );

    // it does not work 
    // ViewBag.yonetici = new SelectList(db.Personel, "pAd", "pAd"+" "+"pSoyad", pModel.yonetici);

    db.Personel.Add(personel);
    db.SaveChanges();
    return RedirectToAction("Index", "AdminUI");

我的表格:

 <div class="form-group">
            @html.LabelFor(model => model.yonetici, htmlAttributes: new  @class = "control-label col-md-2" )
            <div class="col-md-10">
                @Html.DropDownList("yonetici", null, htmlAttributes: new  @class = "form-control" )
                @Html.ValidationMessageFor(model => model.yonetici, "", new  @class = "text-danger" )
            </div>
        </div>
答案

SelectList constructor采用必须存在于模型类中的字段名称(dataValueFielddataTextField)。

您可以添加新字段来描述要显示为Text的内容(注意新的Description属性):

public class PersonelModel

    public int pid  get; set; 
    public string pAd  get; set; 
    public string pSoyad  get; set; 
    public string yonetici  get; set; 
    public string Description
    
        get
        
            return pAd + " " + pSoyad;
        
    

现在您可以将pAd + pSoyad显示为SelectList的文本值:

ViewBag.yonetici = new SelectList(db.Personel, "pAd", "Description")

以上是关于如何使用.Net MVC 5从DropDownList中显示两个独立列中的数据的主要内容,如果未能解决你的问题,请参考以下文章

使用 MVC 6 在 ASP.NET 5 中显示从 WebRequest 获取的 JSON 数据

从 .NET 4.5 MVC 4 升级到 .NET 4.5.2 MVC 5.2

如何在 ASP.NET MVC 5 中访问 AspNetUserRoles 表

在视图中显示相关表中的值

如何在asp.net mvc 5中批准或拒绝管理员批准的用户端记录

使用 .Net Core 5 MVC 为多个 IDP 实施 SAML2