2017-03-24 21 views
0

私がインタビューしてInterwierASP.NET MVCでのルーティング(リンクテーブル)

私がインタビューを作成するときに、私はビューにリンクを生成し、interwierにそれを送信する必要があります。 Interview_idが=5インタビュアーであれば

表Intervierはここでインタビューテーブル

とリンクされているインタビューのID = 5

でインタビューされる

がインタビュアーテーブルが

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と私はこのような 'http://localhost:51542/Interwier/Welcome/5'のようにsmthを必要とするので、InterwierのテーブルのデータをInterview_Idに自動的に埋めるとid = 5になります。

これをどうすれば実現できますか?

多分私は私の質問を明確に書いていないでしょう。いいえ場合は、アップデート2明らかに、私はそれを編集しますないことをここで

UPDATE

が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); 
    } 

テーブルにデータを書き込む

を教えてください私は論理を書くことを試みる

ここに開始画面は、私はここにcreat e Interview(空席を選択し、インタビューに関する詳細を書く)ので、Interwiev IDを作成します。完了しました。その後

enter image description here

私が質問を作成し、インタビューするためにそれらを追加し、その後、私は隣のをクリックします。ここで

をInterview_idにリンクして、テーブルへの追加質問モックアップをした後

enter image description here

です私は人々に招待状を送る必要がある。次のモックアップは、私が以前に書いたように私はそれ、インタビューへのリンクを生成する必要はありませんリンクで

enter image description here

があります。

私はそれをidで生成する必要があります。それで、ユーザーがそれを開いて彼に関する情報を記入すると、このインタビューIDにリンクされます。

答えて

0

あなたは、データを保存するために、エンティティフレームワークを使用している場合は、それそのエッセイは=この

が思うInterwiersのtabelはIDと名前のように唯一の2列がありましょう

DemoEntities db = new DemoEntities(); 
Interwiers objInterwiers = new Interwiers(); 
objInterwiers.Email = "[email protected]"; 
db.Interwiers.Add(objInterwiers); 
db.SaveChanges(); 

を行うことです今、あなたは、idフィールド彼女を入力する必要がありませんあなたのテーブルに自動インクリメントを設定すると、eが返されます。最近追加された

var id = objInterwiers.Id; 

データを保存した後、あなたはあなたのようなIDを取得することができます。私はすでにInterwierを保存

public ActionResult TestSaveData() 
{ 
    DemoEntities db = new DemoEntities(); // your entity name 
    Interwiers objInterwiers = new Interwiers(); //table name 
    objInterwiers.Email = [email protected]; 
    db.Interwiers.Add(objInterwiers); 
    db.SaveChanges(); 
    return RedirectToAction("/Interwier/Welcome/"+id); 
} 
+0

:コントローラで

し、これはリダイレクトするしたい

return Redirect("/Interwier/Welcome/"+id); 

全体のコードは次のようになります。私は他人が必要です、私はインタビューを作成するときに私はインタビュー_idを持っています。インタビューIDとインタビューするためのリンクを生成する必要があります。 interwierに送信し、彼は彼についてのデータを記入し、インタビューのIDで、彼は彼が渡しているインタビューのIDになります。 –

+0

コントローラーの行動コードを教えてください。 –

+0

リダイレクトする場所は、ユーザーIDと表IDで同じですか? –

0

デフォルトルート値は{controller}/{action}/{id}に設定されています。 リンクを生成するときに、routeValuesを使用してIDを設定できます。例えば、 。リンクは、コントローラのアクションから生成された場合、その後、

public ActionResult MyAction() 
{ 
//code 
Return RedirectToAction("Welcome", "Interview", new{InterviewId = Interview.InterviewId}); 

} 

これは、URLはlocalhostになります:[ここで、portNumber] /インタビュー/ようこそ/ InterviewId

関連する問題