[英]How to save an ID from a table to another table in ASP.NET MVC?
[英]asp.net mvc 5 How to get id from url and save it in another table
嘿,我使用MVC 5剃须刀,这是我的新手。
我想获取我在URL中输入的项目ID,例如/ bug / create / 4(数字4代表项目的ID。)
并将其保存在错误表中
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include="BugID,Title,Description,AssigneeID,Priority,Status,Projects_ProjectID")] Bug bug, int id)
{
var currentUser = manager.FindById(User.Identity.GetUserId());
// is empty in DB
ViewBag.getIdFromUrlIsHere =id;
if (ModelState.IsValid)
{
bug.User = currentUser;
// I get an error here
bug.Projects = id;
db.Bugs.Add(bug);
db.SaveChanges();
return RedirectToAction("Index");
}
ViewBag.AssigneeID = new SelectList(db.Users, "Id", "UserName", bug.AssigneeID);
return View(bug);
}
谁能帮我?
如果我将参数中的int id更改为字符串,我得到的错误是无法转换为int我得到相同的错误
我的桌子
CREATE TABLE [dbo].[Bugs] (
[BugID] INT IDENTITY (1, 1) NOT NULL,
[Title] NVARCHAR (50) NOT NULL,
[Description] NVARCHAR (MAX) NOT NULL,
[AssigneeID] NVARCHAR (128) NULL,
[Priority] NVARCHAR (MAX) NOT NULL,
[Status] NVARCHAR (MAX) NOT NULL,
[ApplicationUser_Id] NVARCHAR (128) NULL,
[Projects_ProjectID] INT NULL,
[User_Id] NVARCHAR (128) NULL,
CONSTRAINT [PK_dbo.Bugs] PRIMARY KEY CLUSTERED ([BugID] ASC),
CONSTRAINT [FK_dbo.Bugs_dbo.AspNetUsers_ApplicationUser_Id] FOREIGN KEY ([ApplicationUser_Id]) REFERENCES [dbo].[AspNetUsers] ([Id]),
CONSTRAINT [FK_dbo.Bugs_dbo.Projects_Projects_ProjectID] FOREIGN KEY ([Projects_ProjectID]) REFERENCES [dbo].[Projects] ([ProjectID]),
CONSTRAINT [FK_dbo.Bugs_dbo.AspNetUsers_AssigneeID] FOREIGN KEY ([AssigneeID]) REFERENCES [dbo].[AspNetUsers] ([Id]),
CONSTRAINT [FK_dbo.Bugs_dbo.AspNetUsers_User_Id] FOREIGN KEY ([User_Id]) REFERENCES [dbo].[AspNetUsers] ([Id])
);
GO
CREATE NONCLUSTERED INDEX [IX_ApplicationUser_Id]
ON [dbo].[Bugs]([ApplicationUser_Id] ASC);
GO
CREATE NONCLUSTERED INDEX [IX_Projects_ProjectID]
ON [dbo].[Bugs]([Projects_ProjectID] ASC);
GO
CREATE NONCLUSTERED INDEX [IX_AssigneeID]
ON [dbo].[Bugs]([AssigneeID] ASC);
GO
CREATE NONCLUSTERED INDEX [IX_User_Id]
ON [dbo].[Bugs]([User_Id] ASC);
好吧,假设您传递的ID是项目的ID,则可以通过2种方式对其进行修复:
if (ModelState.IsValid)
{
bug.User = currentUser;
//Retrieve the project from the database
var projectRecord = db.Projects.FirstOrDefault(p=>p.ProjectID == id);
bug.Projects = projectRecord;
db.Bugs.Add(bug);
db.SaveChanges();
return RedirectToAction("Index");
}
要么
if (ModelState.IsValid)
{
bug.User = currentUser;
//Set the project ID directly(i'm assuming you have a projectID property)
bug.Projects_ProjectID = id;
db.Bugs.Add(bug);
db.SaveChanges();
return RedirectToAction("Index");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.