我有一个简单的asp.net核心项目,在项目中,任务页面应该显示任务的详细信息——包括任务的类别——但是发生的是任务的类别和用户的用户名没有显示在索引页面上。这是我在github上的存储库链接:https://github.com/mohamedvoli/ToDo/tree/main/TodoList这是我的索引视图:
@model IEnumerable<TodoList.Models.TodoTask>
@{
ViewData["Title"] = "Index";
}
<h1>Index</h1>
<p>
<a asp-action="Create">Add A New Task</a>
</p>
<table class="table">
<thead>
<tr>
<th>
@Html.DisplayNameFor(model => model.Title)
</th>
<th>
@Html.DisplayNameFor(model => model.Description)
</th>
<th>
@Html.DisplayNameFor(model => model.TimeStamp)
</th>
<th>
@Html.DisplayNameFor(model => model.ParentCategory.Title)
</th>
<th>
@Html.DisplayNameFor(model => model.User.UserName)
</th>
<th>
@Html.DisplayNameFor(model => model.IsDone)
</th>
<th></th>
</tr>
</thead>
<tbody>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Title)
</td>
<td>
@Html.DisplayFor(modelItem => item.Description)
</td>
<td>
@Html.DisplayFor(modelItem => item.TimeStamp)
</td>
<td>
@Html.DisplayFor(modelItem => item.ParentCategory.Title)
</td>
<td>
@Html.DisplayFor(modelItem => item.User.UserName)
</td>
<td>
@Html.DisplayFor(modelItem => item.IsDone)
</td>
<td>
<a asp-action="Edit" asp-route-id="@item.TodoTaskId">Edit</a> |
<a asp-action="Details" asp-route-id="@item.TodoTaskId">Details</a> |
<a asp-action="Delete" asp-route-id="@item.TodoTaskId">Delete</a>
</td>
</tr>
}
</tbody>
</table>
这是我的控制器:
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using TodoList.Models;
using TodoList.Models.Repos;
using TodoList.Models.ViewModels;
namespace TodoList.Controllers
{
public class TodoTasksController : Controller
{
private ITodoRepo<TodoTask> _TaskRepo;
private ITodoRepo<Category> _CategoryRepo;
private UserManager<ApplicationUser> _UserManager;
public TodoTasksController(ITodoRepo<TodoTask> TaskRepo,
UserManager<ApplicationUser> UserManager,
ITodoRepo<Category> CategoryRepo)
{
_TaskRepo = TaskRepo;
_UserManager = UserManager;
_CategoryRepo = CategoryRepo;
}
// GET: TodoTasksController
[Authorize]
public ActionResult Index(string SearchingTerm)
{
var UserId = _UserManager.GetUserId(User);
List<TodoTask> AllTasks = _TaskRepo.List(UserId);
if (!string.IsNullOrEmpty(SearchingTerm))
{
AllTasks = _TaskRepo.Search(SearchingTerm, UserId);
}
return View(AllTasks);
}
// GET: TodoTasksController/Details/5
[Authorize]
public ActionResult Details(int id)
{
return View();
}
// GET: TodoTasksController/Create
[Authorize]
public ActionResult Create()
{
return View(SetTheModelToGetMethod());
}
// POST: TodoTasksController/Create
[Authorize]
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> CreateAsync(TaskCategoryVm model)
{
var UserId = _UserManager.GetUserId(User);
if (ModelState.IsValid)
{
try
{
if (model.CategoryId == -1)
{
ViewData["Message"] = "Please select a category!";
return View(SetTheModelToGetMethod());
}
else
{
var category = _CategoryRepo.Find(model.CategoryId);
var User = await _UserManager.FindByIdAsync(UserId);
TodoTask ValidModel = new TodoTask
{
Title = model.Title,
Description = model.Description,
TimeStamp = DateTime.Now,
IsDone = model.IsDone,
ParentCategory = category,
User = User
};
_TaskRepo.Add(ValidModel);
return RedirectToAction(nameof(Index));
}
}
catch
{
return View();
}
}
else
{
ModelState.AddModelError("", "You have to fill all the required fields!");
return View(FillInSelectList(UserId));
}
}
// GET: TodoTasksController/Edit/5
[Authorize]
public ActionResult Edit(int id)
{
return View();
}
// POST: TodoTasksController/Edit/5
[Authorize]
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit(int id, IFormCollection collection)
{
try
{
return RedirectToAction(nameof(Index));
}
catch
{
return View();
}
}
// GET: TodoTasksController/Delete/5
[Authorize]
public ActionResult Delete(int id)
{
return View();
}
// POST: TodoTasksController/Delete/5
[Authorize]
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Delete(int id, IFormCollection collection)
{
try
{
return RedirectToAction(nameof(Index));
}
catch
{
return View();
}
}
[Authorize]
public List<Category> FillInSelectList(string UserId)
{
var AllCategories = _CategoryRepo.List(UserId).ToList();
AllCategories.Insert(0, new Category { CategoryId = -1, Title = "--- Please select a category ---" });
return AllCategories;
}
public TaskCategoryVm SetTheModelToGetMethod()
{
var UserId = _UserManager.GetUserId(User);
var AllCategories = FillInSelectList(UserId);
TaskCategoryVm model = new TaskCategoryVm
{
UserId = UserId,
Categories = AllCategories
};
return model;
}
}
}
这是我的模型:
using Microsoft.AspNetCore.Mvc.ModelBinding;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Threading.Tasks;
namespace TodoList.Models
{
public class TodoTask
{
public int TodoTaskId { get; set; }
[Required]
public string Title { get; set; }
[Required]
public string Description { get; set; }
[BindNever]
public DateTime TimeStamp { get; set; }
public bool IsDone { get; set; }
[Required]
public int CategoryId { get; set; }
public Category ParentCategory { get; set; }
public string UserId { get; set; }
public ApplicationUser User { get; set; }
}
}
有人能帮忙吗?提前感谢。
使用。Include()
access与您的表相关的表的数据转到TaskRepo。cs
在第41行,用我的代码替换你的函数
public List<TodoTask> List(string id)
{
var AllTasks = _db.Tasks.Where(x => x.UserId == id).Include(x=>x.ParentCategory).Include(x=>x.User).ToList();
return AllTasks;
}
请修复尚未使用的其他查询。有关使用
的更多帮助,请在其他函数中包含()。Include()
访问此链接单击此处
我正在编写一个简单的节点。js项目使用最新版本的eclipse IDE for JavaScript和Web开发者版本:2019-09 R(4.13.0)构建id:20190917-1200 OS:Mac OS X,v.10.15.1,x86_64/cocoa Java版本:12.0.2使用最新版本的node。js(Node.jsv12.13.0)我知道TODO任务没有出现在任务视图窗口中:示例代
主要内容:实例,实例,实例关键词:$display, $write, $strobe, $monitor Verilog 中主要用以下 4 种系统任务来显示(打印)调试信息:$display, $write, $strobe, $monitor。 $display $display 使用方法和 C 语言中的 printf 函数非常类似,可以直接打印字符串,也可以在字符串中指定变量的格式对相关变量进行打印。例如: 如果没有指
我有个组件叫我的组件 模型贝宝。php 控制器paypal.php 意见 贝宝视图。html。php索引。html TMPL(文件夹)default.phpindex.html 在控制器中,我有这个代码 在模型中我有一段代码 在视图/模板/default.php我有这个 当我运行这个url
问题内容: 我正在尝试在Windows中显示。如何在Windows任务栏上显示(如)? 问题答案: 对话框本身不能具有任务栏条目,但是您可以构造一个没有任何可见效果的框架,并将其用作对话框的父级。然后,该对话框看起来像具有任务栏条目。以下代码显示了如何执行此操作:
我如何在Android Studio中打开一个视图,其中显示我使用注释创建的所有任务?
我正在创建一个Android应用程序,它使用BLE与MCU进行通信,目前我可以使用我的应用程序与MCU建立连接,但当我试图发现并获取设备的服务时,我返回了一个空数组,并且不确定原因。 输出: 09-26 16:33:09.648 10917-10931/bamboomobile.medheadI/TAG:连接到GATT服务器。 09-26 16:33:09.648 10917-10931/bamb