ASP.NET MVC中的路由(链接表)
我有面试和面试 当我创建面试时,我需要在视图中生成链接并将其发送给interwier 所以,如果面试id=5,面试官将接受面试id=5的面试 表格Intervier与面试表格链接 这是面试台ASP.NET MVC中的路由(链接表),asp.net,asp.net-mvc,asp.net-mvc-4,routing,Asp.net,Asp.net Mvc,Asp.net Mvc 4,Routing,我有面试和面试 当我创建面试时,我需要在视图中生成链接并将其发送给interwier 所以,如果面试id=5,面试官将接受面试id=5的面试 表格Intervier与面试表格链接 这是面试台 CREATE TABLE [dbo].[Interwiers] ( [Interwier_id] INT IDENTITY (1, 1) NOT NULL, [FIO] NVARCHAR (MAX) NULL, [Email] NVARCHAR (MAX
CREATE TABLE [dbo].[Interwiers] (
[Interwier_id] INT IDENTITY (1, 1) NOT NULL,
[FIO] NVARCHAR (MAX) NULL,
[Email] NVARCHAR (MAX) NULL,
[Telephone] NVARCHAR (MAX) NULL,
[Birthday] DATETIME NOT NULL,
[City] NVARCHAR (MAX) NULL,
[Salary] NVARCHAR (MAX) NULL,
[English] NVARCHAR (MAX) NULL,
[Interview_Id] INT NULL,
[Status] NVARCHAR (MAX) NULL,
PRIMARY KEY CLUSTERED ([Interwier_id] ASC),
CONSTRAINT [FK_Interwiers_ToTable] FOREIGN KEY ([Interview_Id]) REFERENCES [dbo].[Interviews] ([Interview_Id]) ON DELETE CASCADE
现在我生成这样的链接http://localhost:51542/Interwier/Welcome 我需要这样的smth,所以如果Interwier在面试中填写表格中的数据,例如,Id将自动为Id=5
我怎么能意识到这一点
也许我没有写清楚我的问题。如果没有,告诉我不清楚,我会编辑它
更新
这里是Interwier的控制器,这里我向表中写入数据
public ActionResult Welcome()
{
return View();
}
// POST: Interwier/Create
// To protect from overposting attacks, please enable the specific properties you want to bind to, for
// more details see http://go.microsoft.com/fwlink/?LinkId=317598.
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Welcome([Bind(Include = "Id,FIO,Email,Telephone,Birthday,City,English,Salary")] Interwier interwierModel)
{
if (ModelState.IsValid)
{
db.InterwierModels.Add(interwierModel);
db.SaveChanges();
return RedirectToAction("WebCamCheck");
}
return View(interwierModel);
}
更新2
我试着写逻辑
这是开始屏幕,我在这里创建面试选择空缺并写下面试的详细信息,所以我创建了Interwiev id。完成了
之后,我创建问题并将其添加到面试中,然后单击“下一步”,并将问题添加到带有“面试id”链接的表中
这是模型
之后,我需要向人们发送邀请。还有下一个模型
在链接中,我需要生成访问链接,而不是像我以前写的那样
我需要用id生成它。因此,用户打开它并填写关于他的信息,它将链接到此采访id。默认路由值设置为{controller}/{action}/{id}。 生成链接时,可以使用RouteValue设置id。 例如如果链接是由控制器操作生成的,则
public ActionResult MyAction()
{
//code
Return RedirectToAction("Welcome", "Interview", new{InterviewId = Interview.InterviewId});
}
这将导致URL localhost:[portNumber]/Interview/Welcome/InterviewId如果您使用的是实体框架来保存数据,那么执行此操作非常困难 假设Interwiers选项卡只有两列,如Id和name=
DemoEntities db = new DemoEntities();
Interwiers objInterwiers = new Interwiers();
objInterwiers.Email = "aman@gmail.com";
db.Interwiers.Add(objInterwiers);
db.SaveChanges();
现在,如果在表中设置为自动递增,则无需在此处输入id字段
保存数据后,您可以获得您的id,如:
var id = objInterwiers.Id;
这是最近增加的
你可以通过这个来重定向你想要的
return Redirect("/Interwier/Welcome/"+id);
控制器中的整个代码如下所示:
public ActionResult TestSaveData()
{
DemoEntities db = new DemoEntities(); // your entity name
Interwiers objInterwiers = new Interwiers(); //table name
objInterwiers.Email = aman@gmail.com;
db.Interwiers.Add(objInterwiers);
db.SaveChanges();
return RedirectToAction("/Interwier/Welcome/"+id);
}
我已经救了Interwier。我需要其他,当我创建面试时,我有面试id。我需要生成带有面试id的面试链接。将其发送给interwier,他将填写关于他的数据,表中的面试id将是他通过的面试id。用户填写的id和您的表id是否与您要重定向的位置相同?否。我进行了面试,并填写了面试表。然后通过视图上的js生成链接$mybutton.clickfunction{$link.valdocument.location.origin+'@Url.ActionWelcome,Interwier';};保存/获取Id后,您可以将Id保存在Viewbag等中,并使用$link.valdocument.location.origin+'@Url.ActionWelcom等链接进行设置e、 受访者,@Viewbag.Id';};是的,我看到了你的最新更新。这是一种简单的方法,可以在创建后将id保存在Viewbag或tempdata中,并在创建链接的地方使用它,如我上面的评论。