我已经开始了这个"支持票"用户可以创建票证的项目,管理员和用户都可以响应。我对MVC3很新。我自己解决了大多数问题,但是我花了大约5个小时来搜索Google / Stackoverflow并且我无法弄清楚...所以我来找专家。
这是错误:
INSERT语句与FOREIGN KEY约束冲突 " FK_Reponses_Tickets1&#34 ;.冲突发生在数据库中 " C:\ USERS \ ME \ DOCUMENTS \ VISUAL STUDIO 2010 \项目\ TICKETSYSTEM \ TICKETSYSTEM \ APP_DATA \ TICKETSYSTEM.MDF&#34 ;, table" dbo.Tickets",column' ID'。
来源错误:
Line 21: response.Body = body;
Line 22: model.AddToReponses(response);
Line 23: model.SaveChanges();
Line 24: return RedirectToAction("Ticket", new { id = id });
Line 25: }
以下是完整的控制器操作:
public ActionResult Responses(int id, string body)
{
Ticket ticket = GetTicket(id);
Response response = new Response();
response.Body = body;
model.AddToReponses(response);
model.SaveChanges();
return RedirectToAction("Ticket", new { id = id });
}
对于那些想知道的人,我一直在关注matthewblagden(YouTube)的“从零到一百分钟的博客”教程,但是将其用作票务系统而不是博客。正如我所知,我一直跟着他。
任何帮助将不胜感激。谢谢。
答案 0 :(得分:3)
假设您的每个回复都以某种方式与故障单相关联,您也需要在代码中执行此操作!
public ActionResult Responses(int id, string body)
{
// get the ticket
Ticket ticket = GetTicket(id);
// create resposne
Response response = new Response();
response.Body = body;
// *** BEGIN NEW SECTION ***
// here, you need to ASSOCIATE your response to the ticket you're retrieved!
response.Ticket = ticket; // or something like that......
// or maybe:
response.TicketId = ticket.Id; // or something like that......
// *** END NEW SECTION ***
model.AddToReponses(response);
model.SaveChanges();
return RedirectToAction("Ticket", new { id = id });
}
目前,您有 独立 响应(与任何Ticket
无关) - 这显然不适用于您的数据库。