Как я могу взять данные из двух отдельных столбцов, которые будут отображаться в DropDownList с помощью .Net MVC 5 - PullRequest
0 голосов
/ 26 марта 2019

Я новый ученик-разработчик в 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>

1 Ответ

1 голос
/ 26 марта 2019

Конструктор SelectList принимает имена полей (dataValueField и dataTextField), которые должны существовать в вашем классе модели.

Вы можете добавить новое поле, чтобы описать, что вы хотите отобразить как текст (примечание new 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")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...