web-dev-qa-db-fra.com

Comment déclencher un clic sur un bouton dans MVC 4

Je suis nouveau sur MVC et je crée un formulaire d'inscription pour mon application, mais le clic de mon bouton ne fonctionne pas. Le code actuel n'est pas indiqué ci-dessous.

vue

<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>

modèle

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

}

contrôleur (pas complètement terminé)

 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");

        }

    }

comment définir clic événement ici j'ai essayé la publication http mais son ne fonctionne pas, je sais que mon code n'est pas correct s'il vous plaît indiquer quelle est l'erreur ici

15
user1589906

ASP.NET MVC ne fonctionne pas avec des événements tels que ASP classic; il n'y a pas "événement de clic de bouton". Vos méthodes de contrôleur correspondent aux demandes envoyées au serveur.

Au lieu de cela, vous devez envelopper ce formulaire dans du code comme ceci:

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

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

Cela créera un formulaire, puis votre entrée d'envoi déclenchera un POST, qui touchera votre méthode SignUp(), à condition que vos itinéraires soient correctement configurés (les valeurs par défaut devraient fonctionner).

34
anaximander

selon la réponse de @anaximander mais votre action d’inscription devrait ressembler davantage à

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

vous pouvez essayer ce code 

@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>}
2
nercan

MVC ne fait pas d'événements. Il suffit de placer un formulaire et un bouton d'envoi sur la page et la méthode décorée avec l'attribut HttpPost traitera cette demande. 

Vous voudrez peut-être lire un ou deux tutoriels sur la création de vues, de formulaires et de contrôleurs.

0
CodeCaster