【发布时间】:2020-01-15 19:59:55
【问题描述】:
大家晚上好。首先我在做一个电子学习项目。到问题。
我有一个CourseClass 有IEnumerable<Modules> 和一个Module 有IEnumerable<Topics> 的类。当前,当用户单击视图上的任何课程时,它会打开一个CourseDetail 视图。此视图旨在向用户显示Course 的详细信息。与所有模块一样,当单击模块时,我希望下拉每个模块下的所有主题。
这是我发现它非常困难的地方。我可以检索课程的所有Modules,但我发现很难为每个模块带来ToList() 的所有主题。这样当用户点击一个模块时,它会打开一个列出所有主题的内部 div。
[AllowAnonymous]
public async Task<IActionResult> CourseDetail(int id)
{
var course = _context.Courses.FirstOrDefault(c => c.CourseId == id);
var courseId = course.CourseId;
var video = _context.Topic.Include(m => m.Modules).Where(m => m.Modules.CourseId == courseId).Sum(m => m.Duration);
float totalSeconds = video;
TimeSpan time = TimeSpan.FromSeconds(totalSeconds);
var duration = time.ToString("hh':'mm':'ss"); // 00:03:48
var moduleCount = _context.Modules.Where(c => c.CourseId == courseId).Count();
var courseModules = await _context.Modules.Where(c => c.CourseId == courseId).ToListAsync();
foreach (var module in courseModules)
{
var moduleId = module.ModuleId;
var moduleTopics = _context.Topic.Where(c => c.ModuleId == moduleId).ToList();
ViewBag.moduleTopics = moduleTopics;
}
return View(course);
}
这就是我所做的。而我的观点是这样的
<div id="accordion_lessons" role="tablist" class="add_bottom_45">
@foreach (var module in ViewBag.Modules)
{
<div class="card">
<div class="card-header" role="tab" id="headingOne_@module.ModuleId">
<h5 class="mb-0">
<a data-toggle="collapse" href="#collapseOne_@module.ModuleId" aria-expanded="true" aria-controls="collapseOne"><i class="indicator ti-minus"></i>@Html.Raw(module.Title)</a>
</h5>
</div>
<div id="collapseOne_@module.ModuleId" class="collapse show" role="tabpanel" aria-labelledby="headingOne" data-parent="#accordion_lessons">
<div class="card-body">
<div class="list_lessons">
<ul>
@foreach (var topic in ViewBag.moduleTopics)
{
<li><a href="#" class="video">@topic.Title</a><span>@topic.Duration</span></li>
}
</ul>
</div>
</div>
</div>
</div>
}
</div>
我意识到Viewbag.ModuleTopics 仅包含最后一项的主题列表,即Module,我正在通过foreach 语句循环访问,请问我怎样才能实现列出课程模块并单击任何模块它显示了一个列出主题的内部 div。谢谢
【问题讨论】:
-
为什么不将属性添加到模型并使用它docs.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/…
标签: c# asp.net .net asp.net-mvc asp.net-core-2.0