Я бы хотел отфильтровать данные в сетке с выпадающим списком из модели представления, но я не знаю, как это сделать.Я подумал создать контроллер следующим образом: Мои контроллеры:
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.
Спасибо за вашу помощь!