ASP.NET MVC中的路由(链接表)

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

我有面试和面试

当我创建面试时,我需要在视图中生成链接并将其发送给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) 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中,并在创建链接的地方使用它,如我上面的评论。