Сетка фильтра в представлении с использованием раскрывающегося списка и Viewmodel - PullRequest
0 голосов
/ 16 октября 2018

Я бы хотел отфильтровать данные в сетке с выпадающим списком из модели представления, но я не знаю, как это сделать.Я подумал создать контроллер следующим образом: Мои контроллеры:

public ActionResult Index()
    {
        var missions = this.db.missions_supportmission
            .Include(m => m.organization_desk)
            .Include(m => m.organization_programme)
            .Select(x => new MissionsViewModel()
            {                   
                DeskIdSelected = x.organization_desk.name_en,
                ProgrammeIdSelected = x.organization_programme.name_en,
                DeskList = new SelectList(this.db.organization_desk.ToDictionary(b => b.desk_id, b => b.name_en), "Key", "Value"),
                ProgrammeList = new SelectList(this.db.organization_programme.ToDictionary(b => b.prog_id, b => b.name_en), "Key", "Value")
    });

В ViewModel у меня есть это:

public class MissionsViewModel
{
    public missions_supportmission missions_supportmission { get; set; }

    [Required]
    public string DeskIdSelected { get; set; }

    [Required]
    public string ProgrammeIdSelected { get; set; }

    [Required]
    public string CountryIdSelected { get; set; }

    [Required]
    public string NatureIdSelected { get; set; }

    [Required]
    public string DirectionIdSelected { get; set; }

    [Required]
    public string UnitIdSelected { get; set; }

    [Required]
    public string TypeIdSelected { get; set; }

    public SelectList DeskList { get; set; }

    public SelectList ProgrammeList { get; set; }
    public SelectList TypeList { get; set; }
    public SelectList CountryList { get; set; }
    public SelectList NatureList { get; set; }
    public SelectList DirectionList { get; set; }
    public SelectList UnitList { get; set; }
}

My View (в выпадающем списке я использовал первый viewbag, но я неЯ больше не хочу его использовать. Я хочу использовать строго типизированный код)

@model IEnumerable<MissionsDF.Models.MissionsViewModel>


        
            
                <h2>Filtres</h2>
            

            @using (Html.BeginForm("Index", "Missions", FormMethod.Get))
            {
                
                    <h3>Localisation</h3>
                    
                        @Html.LabelFor(model => model, "Desk", htmlAttributes: new { @class = "control-label col-md-4" })
                        
                            @Html.DropDownList("SelectedDesk",
                            new SelectList(ViewBag.Listedesdesks, "Value", "Text", "ViewBag.SelectedDesk"),
                            "All", new { onchange = "form.submit();", @class = "form-control" })
                        
                    
                
            }
        

    
        <h2>Missions</h2>
        <p>
            @Html.ActionLink("Create New", "Create")
        </p>
        
            @using (Html.BeginForm("Index"))
            {
                
                    
                        @Html.ActionLink("Pays", "Index",
                        new { SortOrder =ViewBag.ListorderPays,
                            /*SelectedDesk = ViewBag.ListorderPays,
                            SelectedProgramme = ViewBag.ListorderDate,*/
                        })
                    
                    
                        @Html.ActionLink("Date", "Index",
                        new { SortOrder = ViewBag.ListorderDate,
                            /*SelectedDesk = ViewBag.ListorderPays,
                            SelectedProgramme = ViewBag.ListorderDate,*/
                        })
                    
                    
                        Personne
                    
                    
                        Missions
                    
                    
                    
                
            }
            @foreach (var item in Model)
            {
                
                    
                        @Html.DisplayFor(modelItem => item.DeskIdSelected)
                    
                    
                        @Html.DisplayFor(modelItem => item.ProgrammeIdSelected)
                    
                
            }
        
    

 

Когда я отлаживаю свой проект, у меня появляется следующая ошибка

System.NotSupportedException: 'Only parameterless constructors and initializers are supported in LINQ to Entities.'

Я знаюОткуда берутся ошибки, но я не знаю, как написать свой код в контроллерах, чтобы иметь в своем представлении одновременно сетку и выпадающий список для фильтрации данных с использованием viewmodel.

Спасибо за вашу помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...