【发布时间】:2021-10-06 14:25:29
【问题描述】:
我有不同的功能。其中之一是我应该能够编写 cmets。我能够写评论,但问题是当我发表评论时,我的视图会丢失关于我要写评论的对象的所有数据。
例如,这就是我的 URL 在/Ticket/Info/36 之前和/Ticket/Info/0 之后的样子。
这是我发表评论的控制器的样子。
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult Comments(CommentVM obj)
{
if (ModelState.IsValid)
{
_db.Commenents.Add(obj.Comment);
_db.SaveChanges();
}
return RedirectToAction(nameof(Info), new { @id = obj.Ticket.Ticket_Id });
}
我的信息控制器,我有我的看法
public IActionResult Info(int id)
{
CommentVM t = new CommentVM
{
Comment = new Comments { Ticket_Id = id },
UserTicketList = _db.UserTickets.Include(n => n.ApplicationUser).Include(n => n.Ticket)
.Where(n => n.Ticket_Id == id).ToList(),
UserTicket = new UserTicket()
{
Ticket_Id = id
},
Ticket = _db.Tickets.FirstOrDefault(n => n.Ticket_Id == id)
};
t.Ticket = _db.Tickets.FirstOrDefault(t => t.Ticket_Id == id);
if (t.Ticket == null)
{
t.Ticket = new Ticket();
}
t.Comments = _db.Commenents.Where(f => f.Ticket_Id == id);
List<string> tempListOfAssignedUsers = t.UserTicketList.Select(n => n.UserId).ToList();
//Not in LINQ clause
var tempList = _db.ApplicationUser.Where(n => !tempListOfAssignedUsers.Contains(n.Id)).ToList();
t.DevList = tempList.Select(i => new SelectListItem
{
Text = i.Email,
Value = i.Id.ToString()
});
//
return View(t);
}
如您所见,我有return RedirectToAction(nameof(Info), new { @id = obj.Ticket.Ticket_Id }); 我也测试了稍微不同的变体,例如return RedirectToAction("Info", new { Id = obj.Ticket_Id }); ,但我仍然得到相同的结果?
【问题讨论】:
标签: c# asp.net-mvc asp.net-core entity-framework-core