2012-06-08 44 views
10

私はすべてのもの.NETの新機能です。私はHTML形式の非常に基本的なWebページを持っています。ビューからコントローラにフォームデータを送信するために「onsubmit」したいと思います。私はこれに似た投稿を見たことがありますが、誰も新しいishのRazorの構文を含む答えはありません。 'onsubmit'で何をすればいいですか?コントローラからデータにアクセスするにはどうすればいいですか?ありがとう!!次のようにフォームの定義ASP.NET MVC 3カミソリ:ビューからコントローラへのデータの受け渡し

答えて

26

Html.Beginformに渡したいビューコントロールをラップすることができます。例えば

「controllernameの」コントローラのあなたの「ActionMethodName」方法に提出されることBeginformの内部のすべてを押して[送信]ボタンを
@using (Html.BeginForm("ActionMethodName","ControllerName")) 
{ 
... your input, labels, textboxes and other html controls go here 

<input class="button" id="submit" type="submit" value="Submit" /> 

} 

。上記

public ActionResult ActionMethodName(FormCollection collection) 
{ 
string userName = collection.Get("username-input"); 

} 

コレクションオブジェクトは、我々は、フォームから提出されたすべてのあなたの入力項目が含まれます:あなたはこのような観点から受信したすべてのデータにアクセスすることができ、コントローラ側の

。あなたがまたしてページ全体を送信せずに、直接あなたのコントローラにパラメータを渡すことができ

コレクション[「何とか」] またはcollection.Get(「何とか」)

:あなたは任意の配列にアクセスするのと同じように、名前でそれらにアクセスすることができますFormCollection:

@using (Html.BeginForm("ActionMethodName","ControllerName",new {id = param1, name = param2})) 
{ 
... your input, labels, textboxes and other html controls go here 

<input class="button" id="submit" type="submit" value="Submit" /> 

} 

public ActionResult ActionMethodName(string id,string name) 
{ 
string myId = id; 
string myName = name; 

} 

また、これらのメソッドを組み合わせて、Formcollectionとともに特定のパラメータを渡すこともできます。それはあなた次第です。

希望します。

編集:他のユーザーも役に立つリンクを参照しています。見てみましょう。

+0

大変ありがとうございます。 –

+0

あなたはこれを行うこともできます:HttpContext.Request.Form ["index"];このようにして、FormCollectionをパラメータに追加する必要はありません。 –

0

@using (Html.BeginForm("ControllerMethod", "ControllerName", FormMethod.Post))

は、コントローラのメソッドの呼び出し「ControllerMethod」「コントローラ名」になります。 このメソッドでは、モデルまたは他のデータ型を入力として受け入れることができます。フォームとrazor mvcを使用した例については、thisチュートリアルを参照してください。

関連する問題