ASP.NET MVC: "add comment" underneath "detail

本文关键字:quot comment underneath detail add NET MVC ASP | 更新日期: 2023-09-27 18:16:55

我对ASP相当陌生。净MVC。这个想法很简单,但我似乎无法实现。

我有一个"票",可以在/Tickets/Details/[id]下查看。在这张票的下面是一个评论列表和"添加评论"部分。在开始的时候,我分别对它们进行了测试,并手动编写了TicketID。现在我需要保存当前票证的id和整个票证,以便以后使用。成功保存评论后,(票据的)页面应该刷新。

根据以前在ASP中的经验,我在我的票详细信息下面尝试了这个

<div class="panel panel-info">
<div class="panel-heading">Comments</div>
<div class="panel-body">
    @{
        Html.RenderAction("create", "TicketComments");
    }
</div>

我在我的TicketCommentsController.cs中尝试了以下事情:

    public ActionResult Create([Bind(Include = "ID, body")] TicketComment ticketComment)
    {
        Ticket ticket = db.Tickets.Find(ticketComment.ID);
        if (ModelState.IsValid)
        {
            ticketComment.UserID = User.Identity.GetUserId();
            ticketComment.AanmaakDateTime = DateTime.Now.ToLocalTime();
            ticketComment.UpdateDateTime = DateTime.Now.ToLocalTime();
            ticketComment.ParentTicketId = ticket.ID;
            ticketComment.ParentTicket = ticket;
            db.TicketComments.Add(ticketComment);
            db.SaveChanges();
            return View(ticket);
        }
        return View(ticket);
    }

但是在返回时它给了我一个异常:

"传入字典的模型项的类型是'System.Data.Entity.DynamicProxies '。Ticket_5309A05301E0FE6AD5614FE3ED9E54D6FAB46DFEAFB2A38B4341FACD04441DF5',但是这个字典需要一个类型为'Cronos.Models.TicketComment'的模型项。"

我不知道下一步该做什么。我读到的一件事是合并TicketCommentsController在TicketsController,但这感觉很乱。

有人能帮忙吗?

ASP.NET MVC: "add comment" underneath "detail

我建议你张贴什么视图。根据异常消息,您只能传递

TicketComment

到你的视图(检查第一行,它应该是@model Cronos.Models.TicketComment,它定义了这个视图中的模型)

将Ticket传递给该视图

视图期望一个TicketComment,而不是你发送票证代理,它使用默认的创建视图。

代替

return View(ticket);

在成功保存时进行重定向,并让details操作查找并显示其自己的模型。PRG模式

[HttpPost]
public ActionResult Create([Bind(Include="ID, comments")] ticketComment)
{
    if (ModelState.IsValid)
    {
        ...
        return RedirectToAction("Details", "Ticket", new { Id = ticket.ID });
    }
    return View(ticketComment);
}

一个更以mvc为中心的例子:https://www.stevefenton.co.uk/2011/04/asp-net-mvc-post-redirect-get-pattern/