如何在MVC 4中触发按钮单击

时间:2013-05-08 12:11:22

标签: c# asp.net-mvc-4

我是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 个答案:

答案 0 :(得分:35)

ASP.NET MVC不适用于ASP经典之类的事件;没有“按钮点击事件”。您的控制器方法对应于发送到服务器的请求。

相反,您需要在代码中包装该表单:

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

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

这将设置一个表单,然后您的提交输入将触发POST,这将触发您的SignUp()方法,假设您的路由已正确设置(默认值应该有效)。

答案 1 :(得分:11)

根据@anaximander的回答,但你的注册动作看起来应该更像

    [HttpPost]
    public ActionResult SignUp(Account account)
    {
        if(ModelState.IsValid){
            //do something with account
            return RedirectToAction("Index"); 
        }
        return View("SignUp");
    }

答案 2 :(得分:3)

你可以试试这段代码

@using (Html.BeginForm("SignUp", "Account", FormMethod.Post)){<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>}

答案 3 :(得分:0)

MVC不会做事件。只需在页面上放置一个表单并提交按钮,使用HttpPost属性修饰的方法就会处理该请求。

您可能希望阅读有关如何创建视图,表单和控制器的教程。