15

私は MVC を初めて使用し、アプリの登録フォームを作成していますが、ボタンのクリックが機能していません 現在のコードは以下に示されていません

見る

<fieldset>
            <legend>Sign Up</legend>
            <table>
                <tr>
                    <td>
                        @Html.Label("User Name")
                    </td>
                    <td>
                        @Html.TextBoxFor(account => account.Username)
                    </td>
                </tr>
                <tr>
                    <td>
                        @Html.Label("Email")
                    </td>
                    <td>
                        @Html.TextBoxFor(account => account.Email)
                    </td>
                </tr>
                <tr>
                    <td>
                        @Html.Label("Password")
                    </td>
                    <td>
                        @Html.TextBoxFor(account => account.Password)
                    </td>
                </tr>
                <tr>
                    <td>
                        @Html.Label("Confirm Password")
                    </td>
                    <td>
                        @Html.Password("txtPassword")
                    </td>
                </tr>
                <tr>
                    <td>
                        <input type="submit" name="btnSubmit" value="Sign Up" />
                    </td>
                </tr>
            </table>
        </fieldset>

モデル

public class Account
{
    public string Username { get; set; }
    public string Email { get; set; }
    public string Password { get; set; }      

}

コントローラー(未完成)

 public class AccountController : Controller
    {
        //
        // GET: /Account/

        public ActionResult Index()
        {
            return View();
        }

        // GET: /Account/SignUp

        public ActionResult SignUp()
        {

            return View();

        }

        [HttpPost]
        public ActionResult SignUp(string userName,string email,string password)
        {
            Account createAccount = new Account();

            createAccount.Username = userName;
            createAccount.Email = email;
            createAccount.Password = password;

            return View("Index");

        }

    }

ここでクリックイベントを定義する方法 http 投稿を試しましたが、機能しません コードが正しくないことはわかっています ここでエラーを指摘してください

4

4 に答える 4

36

ASP.NET MVC は、ASP クラシックのようなイベントでは機能しません。「ボタンクリックイベント」はありません。コントローラー メソッドは、サーバーに送信される要求に対応します。

代わりに、次のようなコードでそのフォームをラップする必要があります。

@using (Html.BeginForm("SignUp", "Account", FormMethod.Post))
{
    <!-- form goes here -->

    <input type="submit" value="Sign Up" />
}

これによりフォームが設​​定され、送信入力によって POST がトリガーSignUp()され、ルートが適切に設定されていると仮定すると (デフォルトが機能するはずです)、メソッドがヒットします。

于 2013-05-08T12:16:21.797 に答える
12

@anaximander の回答によると、サインアップ アクションは次のようになります。

    [HttpPost]
    public ActionResult SignUp(Account account)
    {
        if(ModelState.IsValid){
            //do something with account
            return RedirectToAction("Index"); 
        }
        return View("SignUp");
    }
于 2013-05-08T12:25:26.003 に答える
0

MVC はイベントを行いません。ページにフォームと送信ボタンを配置するだけで、HttpPost 属性で装飾されたメソッドがそのリクエストを処理します。

ビュー、フォーム、およびコントローラーの作成方法に関するチュートリアルを 1 つか 2 つ読みたいと思うかもしれません。

于 2013-05-08T12:16:13.480 に答える