Я экспериментировал с ASP.NET MVC и следовал этому учебнику, чтобы создать базовое приложение со списком задач. У меня все работает нормально, все работает, хотя видео в VB, и у меня возникли некоторые проблемы с его "преобразованием" в C #, но он запутался благодаря примеру кода.
Теперь, чтобы углубить свои знания, я решил сделать небольшую модификацию системы. Я хочу изменить страницу указателя так, чтобы «Мои задачи» отображались красным цветом, если все задачи выполнены, и «Мои задачи» зеленым цветом, если имеются любые незавершенные задачи.
Я добавил следующую функцию в HomeController.cs:
public bool Uncomplete()
{
bool AnyLeft = false;
var tasks = from t in db.Tasks orderby t.EntryDate descending select t;
foreach (Task match in tasks)
{
if (match.IsCompleted == false)
{
AnyLeft = true;
}
}
return AnyLeft;
}
Затем я изменил ActionResult для Index (), чтобы он выглядел так:
public ActionResult Index()
{
bool AnyLeft = Uncomplete();
var tasks = from t in db.Tasks orderby t.EntryDate descending select t;
return View(tasks.ToList());
}
С моим последним намерением использовать следующий код в Index.aspx:
<% if (AnyLeft == false)
{ %>
<h1 class="green">My Tasks</h1>
<% }
else
{ %>
<h1 class="red">My Tasks</h1>
<% } %>
Однако я не могу понять, как сделать так, чтобы Index.aspx «осознавал», что AnyLeft имеет значение true или false. Я пытался
return View(tasks.ToList(), AnyLeft);
Но это приводит к ошибкам, которые я не могу понять. У меня такое чувство, что я поступаю неправильно, но не могу понять.