私は .NET のすべてについてまったくの初心者です。HTML フォームを含む非常に基本的な Web ページがあります。「onsubmit」でビューからコントローラーにフォームデータを送信したい。これに似た投稿を見たことがありますが、新しい Razor 構文に関する回答はありません。「onsubmit」で何をすればよいですか? また、コントローラーからデータにアクセスするにはどうすればよいですか? ありがとう!!
2 に答える
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 と共に特定のパラメーターを渡すこともできます。それはあなた次第です。
それが役に立てば幸い。
編集:私が書いている間に、他のユーザーがいくつかの役立つリンクも紹介しました。見てください。
次の方法でフォームを定義します。
@using (Html.BeginForm("ControllerMethod", "ControllerName", FormMethod.Post))
コントローラー「ControllerName」のメソッド「ControllerMethod」を呼び出します。このメソッドでは、モデルまたはその他のデータ型を入力として受け入れることができます。フォームと razor mvc を使用した例については、このチュートリアルを参照してください。