我发现了类似的问题,但他们使用的是数据网格,我正在使用表格类。我想分离我用来更改我在View中创建的行的属性的逻辑,并将逻辑放在Controller中。 这是我可以单元测试我的逻辑。目前,这就是我将数据发送到View
的方式public ViewResult Index()
{
var todoes = repository.GetAll();
return View(todoes);
}
这就是我目前正在构建表格,并为过期任务着色文本。
@foreach (var item in Model)
{
<tr>
<td>
<li class="@(item.Deadline.Date < DateTime.Today && !item.Completed ? "overdue" : "notoverdue")">
@Html.DisplayFor(modelItem => item.TaskName)
</li>
</td>
<td>
@Html.DisplayFor(modelItem => item.Deadline)
</td>
<td>
@Html.DisplayFor(modelItem => item.Completed)
</td>
<td>
@Html.DisplayFor(modelItem => item.Moredetails)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new {id = item.TodoId}) |
@Html.ActionLink("Details", "Details", new {id = item.TodoId}) |
@Html.ActionLink("Delete", "Delete", new {id = item.TodoId})
</td>
</tr>
}
<style type="text/css">
li.overdue {
color: lightcoral;
}
li.notoverdue {
color: black;
}
</style>
感谢您的时间。
答案 0 :(得分:0)
您始终可以将视图中的逻辑放在实际的对象模型上,然后在视图中使用它,例如:
public class MyModel
{
public string CssClass
{
get
{
return Deadline.Date < DateTime.Today && !Completed ? "overdue" : "notoverdue";
}
}
}
然后在您的视图中使用此属性:
<li class="@item.CssClass" ..... />