10

私は .NET のすべてについてまったくの初心者です。HTML フォームを含む非常に基本的な Web ページがあります。「onsubmit」でビューからコントローラーにフォームデータを送信したい。これに似た投稿を見たことがありますが、新しい Razor 構文に関する回答はありません。「onsubmit」で何をすればよいですか? また、コントローラーからデータにアクセスするにはどうすればよいですか? ありがとう!!

4

2 に答える 2

26

Html.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" />

}

[送信] ボタンが押されると、Beginform 内のすべてが "ControllerName" コントローラーの "ActionMethodName" メソッドに送信されます。

コントローラー側では、次のようにビューから受信したすべてのデータにアクセスできます。

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

}

上記のコレクション オブジェクトには、フォームから送信されたすべての入力エントリが含まれます。collection["blah"] または collection.Get("blah") のように、配列にアクセスするのと同じように、名前でそれらにアクセスできます。

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 と共に特定のパラメーターを渡すこともできます。それはあなた次第です。

それが役に立てば幸い。

編集:私が書いている間に、他のユーザーがいくつかの役立つリンクも紹介しました。見てください。

于 2012-06-08T22:41:44.657 に答える
0

次の方法でフォームを定義します。

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

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

于 2012-06-08T22:38:08.637 に答える