Member 13146819 Ответов: 1

Как использовать select query в выпадающем списке? В контроллер MVC


У меня есть много данных в моей таблице, которые я связываю в своем выпадающем списке, но теперь мне нужны только те данные, которые я хочу. Могу ли я реализовать select query здесь?
Мне нужны некоторые из моих данных в соответствии с моим запросом select, например "acc_no", где acc_des="XYZ".

Что я уже пробовал:

Это мой контроллер, и я связываю таблицу вот так...
var accounts = db.gl_m_acc.ToList();
            foreach (var item in accounts)
            {
                GetAccountsCH ac = new GetAccountsCH();
                ac.acc_no = item.acc_no;
                ac.acc_des = item.acc_des;
                Gl_t_Vcr_model.acc.Add(ac);
            }


Это моя точка зрения:

@Html.DropDownListFor(model => model.acc_no, new SelectList(Model.acc, "acc_no","acc_des"), "<---Select--->", new { @class = "form-control", style = "width: 100%;" })


Это моя модель:
public class GetAccountsCH
    {
        public int acc_no { get; set; }

        public string acc_des { get; set; }
    }
 public class Gl_t_vcr
    {
  public List<getaccountsch> acc = new List<getaccountsch>();
      }

#realJSOP

Ваши имена переменных и методов абсолютно отстой.

Просто говорю...

1 Ответов

Рейтинг:
8

David_Wimbley

Ваш код слишком сложен для понимания из-за аббревиатур, используемых в качестве имен переменных. Я не могу легко сказать, что именно.

Итак, вот как вы можете фильтровать данные в контроллере для использования в вашем представлении. Вам нужно будет внести одну или две модификации в вашу модель.

Контроллер

public ActionResult Index ()
{
    var model = new MyModel();
    var getData = database.MyTable.Where(m=>m.AccountDescription = "Savings");

    foreach(var item in getData)
    {
       //I did not put this code into a compiler, i may have the SelectListItem property names incorrect
       var selectItem = new SelectListItem();
       //Sets what is displayed in the drop down
       selectItem.Text = item.AccountNumber;
       //Sets the value to capture
       selectItem.Value = item.AccountNumber;
       model.DropDown.Add(selectItem);
    }
    return View(model);
}


Модель

public class MyModel
{
    public MyModel()
    {
        this.DropDown = new List<SelectListItem>();
    }

    public string AccountNumber {get;set;}
    public List<SelectListItem> DropDown {get;set;}
}


Смотреть

@Html.DropDownListFor(model => model.AccountNumber , model.DropDown, "<---Select--->", new { @class = "form-control", style = "width: 100%;" })


Таким образом, вы можете отправлять данные из своего хранилища данных в представление в виде раскрывающегося списка. И в частности, если я правильно понял ваш вопрос, то .Где( пункт в контроллере-это то, как вы фильтруете данные, чтобы получить только ту информацию, которую вы хотите.