2012-03-01 11 views
0

私はMVC3を習っているように私を許してください。バインドされていない入力剃刀から価値を得るMVC3

私は競技用のテーブルと回答用のテーブルが2つあります。各競技会には、それに関連する3つの回答があります。

[自分の作成]ビューは厳選されたものです。私は何をしたい私のコントローラは、私は何をしたいのは、この

のようなものである。この

Function Create(competition As Competition) As ActionResult 
    If ModelState.IsValid Then 
    db.Competitions.AddObject(competition) 
    db.SaveChanges() 
    Return RedirectToAction("Index") 
    End If 
    ViewBag.ClientID = New SelectList(db.Clients, "ClientID", "ClientName", competition.ClientID) 
    Return View(competition) 
End Function 

のように見えます

そのビューに3つの未結合の入力ボックスを追加し、コントローラに結果を取得しています

Function Create(competition As Competition) As ActionResult 
    If ModelState.IsValid Then 
    'DIM ANSWERA AS STRING = INPUTA 
    'DIM ANSWERB AS STRING = INPUTB 
    'DIM ANSWERC AS STRING = INPUTC 

    db.Competitions.AddObject(competition) 
    db.SaveChanges() 
    'SAVE ANSWERS TO ANSWER TABLE 

    Return RedirectToAction("Index") 
    End If 
    ViewBag.ClientID = New SelectList(db.Clients, "ClientID", "ClientName", competition.ClientID) 
    Return View(competition) 
End Function 

申し訳ありませんが、私は適切に質問を書式設定していません。うまくいけば、私はだから私は足場私はビューで

Function Edit(id As Integer) As ViewResult 
     Dim competition As Competition = db.Competitions.Single(Function(c) c.CompetitionID = id) 



     ViewBag.ClientID = New SelectList(db.Clients, "ClientID", "ClientName", competition.ClientID) 
     Return View(competition) 
    End Function 

を競争の詳細を編集できるようにしたい今では上記の作業を得た私は

おかげ

を行うにしようとしています何の要旨を取得します競合の詳細を返すビューですが、3つの入力ボックスを追加してその競合に関連する3つの回答を表示するにはどうすればよいですか?

答えて

1

Request("NAME")は、NAMEをフォーム要素の名前、cookie、querystringパラメータ、またはサーバー変数として検索します。

Dim answerA as String = Request("answerA") 
Dim answerB as String = Request("answerB") 
Dim answerC as String = Request("answerC") 

あなたはおそらく、具体的使用「answerA」と呼ばれるフォーム要素をターゲットとすべき安全のために:

Dim answerA as String = Request.Form("answerA") 

をしかし、上記の2つの例のいずれかが動作します。

+1

マイ・ポストを再フォーマットしていただきありがとうございます。おかげでMattとbhamlinの両方の回答がうまくいった –

0

コントローラパラメータ名が入力名と一致する場合、MVCはバインディングを行います。あなたのHTMLがどのように見えるのであれば:

<input type="text" name="answerA" /> 
<input type="text" name="answerB" /> 
<input type="text" name="answerC" /> 

、あなたのコントローラは単に

Function Create(competition As Competition, answerA As string, answerB As string, answerC As string) As ActionResult 

代わりにあなたがanswersという名前の配列を使用してanswers[0]answers[1]、などのような名前を使用して入力フィールドを宣言することができ..することができ

関連する問題