.NETはまったく新しいものです。 HTMLフォームを備えた非常に基本的なWebページがあります。 'onsubmit'でフォームデータをビューからコントローラーに送信します。私はこれに似た投稿を見たことがありますが、新しいRazor構文を含む回答はありません。 'onsubmit'で何をしますか、そしてどのようにコントローラーからデータにアクセスしますか?ありがとう!!
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」を呼び出します。このメソッドでは、モデルまたは他のデータ型を入力として受け入れることができます。フォームとかみそりmvcの使用例については、 this チュートリアルを参照してください。