За мной следуют ответы:
MVC6 Раскрывающийся список стран
, но безрезультатно.
Кажется, что это трудноотобразить раскрывающийся список в представлении, когда модель представления имеет тип IEnumerable.
Я пытаюсь отобразить раскрывающийся список ClassName в моем представлении BookClass, используя модель представления:
public class MemberClassViewModel
{
[Required]
public int MemberID { get; set; }
[Required]
public int ClassID { get; set; }
public SelectList ClassName { get; set; }
public List<Member> MemberClassBookings { get; set; }
}
Я использую SelectList для имени класса (имя класса упражнения это - я создаю приложение, которое можно использовать в тренажерных залах).
[HttpGet]
public async Task<IActionResult> BookClass(int id)
{
List<MemberClassViewModel> memberClassViewModel = new List<MemberClassViewModel>();
var classlist = _context.Classes.OrderBy(c=>c.ClassName).Select(x => new { Id = x.Id, Value = x.ClassName });
var listData = await (from Classes in _context.Classes
select new
{
Classes.Id,
Classes.ClassName,
Classes.MemberClassBookings
}
).ToListAsync();
listData.ForEach(x =>
{
MemberClassViewModel Obj = new MemberClassViewModel();
Obj.MemberID = id;
Obj.ClassID = x.Id;
Obj.MemberClassBookings = x.MemberClassBookings;
Obj.ClassName = new Microsoft.AspNetCore.Mvc.Rendering.SelectList(classlist, "Id", "Value");
memberClassViewModel.Add(Obj);
}
);
return View(memberClassViewModel);
}
Вот мой метод действия.Как вы можете видеть, я добавляю ClassName к экземпляру модели представления, в то же время отображая раскрывающийся список.
Однако, на мой взгляд, я не могу получить доступ к своему раскрывающемуся списку:
@model IEnumerable<GymTracker.ViewModel.MemberClassViewModel>
@{
ViewData["Title"] = "BookClass";
}
<h2>Book Class</h2>
<div class="form-group">
<label asp-for="ClassName" class="col-md-2 control-label"></label>
<div class="col-md-10">
<select asp-for="Classname" asp-items="@Model"></select>
</div>
</div>
Любая помощь будет высоко ценится.Спасибо