0

1 つのフォームがあり、フォームに 2 つの div コンテナーがあるとします。1 つの div コンテナーには、ログインの詳細を送信するためのテキスト ボックスがほとんどなく、別の div にも、登録に関連するテキスト ボックスがほとんどありません。現在、私のホームコントローラーには2つのアクションメソッドがあり、1つはログインで、もう1つは登録です。ユーザーがログインボタンをクリックすると、jqueryを介してフォームを送信しますが、送信する前にアクションURLを変更します。ユーザーが登録ボタンをクリックしたときに登録アクションメソッドを呼び出すのと同じ方法です。jqueryを使用してmvcでこれを行う方法を教えてください。サンプルコードで私を助けてください。

他のフォーラムのように別の人が答えます。

@model MvcForums.Models.StudentModel 

@{ 

    using(@Html.BeginForm("Create","Student", FormMethod.Post)) 
    { 

        <label> Name</label> 
        @Html.TextBoxFor(m=>m.FirstName) <br/> 
        <label> From country:</label> 
        @Html.DropDownListFor(m=>m.CountryId, Model.Countries,"--please select-- ") <br/> 

        <input id="btnSave" value ="Login" type="submit" name="commandName"/> 
        <input id="btnRegister" value ="Register" type="submit" name="commandName"/> 
    } 

}


[HttpPost] 
public ActionResult Create(StudentModel studentModel, string commandName) 
{ 

    if(commandName == "Login") 
    { 

    } 
    else if(commandName == "Register") 
    { 

    } 

    return View("Index"); 
}

彼の答えを読んだ後、私はmvcの初心者であり、それらは次のとおりであるため、頭に混乱が生じます

まず第一に、あなたのコードは不正な形式では読めません。私はmvcが初めてです....ちょうどそれを学んでいます。あなたのコードを読んだ後、いくつかの混乱が発生します。

1) 追加の括弧を付けた理由@{ }

2 u<label> Name</label>はフォーム ビルディング コードで使用します。html4 にタグはありますか? html5固有のタグですか?

3)@Html.DropDownListFor(m=>m.CountryId, Model.Countries,"--please select-- ")

ドロップダウンを構築するとき、なぜ値とテキストフィールドを指定しなかったのですか.......mvcはどのフィールドが値になり、何がテキストになるかをどのように理解できますか? u は DropDownListFor() でモデルをバインドするだけです

4) 見てください

<input id="btnSave" value ="Login" type="submit" name="commandName"/>
<input id="btnRegister" value ="Register" type="submit" name="commandName"/>

両方のボタン名はcommandName? それが正しいか ?

ユーザーが任意のボタンをクリックすると、ボタン名がどのように渡されるか

public ActionResult Create(StudentModel studentModel, string commandName)

Create()方法 ?Create() and how commandNameサーバー側で暗黙的にコマンド名が変数に渡される方法を教えてくださいボタン名を保持できます。

あなたのコードを読んだ後、私はあまりにも混乱しています。可能であれば、私のすべてのポイントについて詳細に議論してください。ありがとう

4

1 に答える 1