Question

À mon avis « EditUser » J'ai un lien d'action que je clique pas toujours:

  <%= Html.ActionLink("Resend forgotten password", "EditUser", this.Model.UserName, null)%><br />

Dans mon contrôleur « AdministrationController » j'ai un EditUser ActionResult là, je voudrais appeler méthode envoyer le mot de passe oublié. Mais je ne sais pas comment réagir si je clique sur un lien d'action ou non. Je ne veux pas envoyer mot de passe chaque fois que j'appelle action « EditUser ».

Action Ma dans AdministratorController:

[HttpPost]
        [ValidateInput(false)]
        public ActionResult EditUser(EditUserModel model)
        {
        try
        {
            Admin admin = new Admin();
            admin.SendForgottenPasswordToUser(model.UserName);

            if (!model.Validate())
            {
                ModelState.AddModelError("", "Please fill missed fields");
            }

            if (!model.Save())
            {
                ModelState.AddModelError("", "Error while saving data");
            }
            else
            {
                ModelState.AddModelError("", "Successufully edited.");
            }

            return View(model);

        }
Était-ce utile?

La solution

Vous pouvez créer une méthode d'action supplémentaire et modifier le lien d'action:

<% = Html.ActionLink ( "Renvoyer mot de passe oublié", "ResendPassword", this.Model.UserName, null)%>

La méthode d'action pour renvoyer le mot de passe ressemble alors quelque chose comme ceci:

[HttpPost]
[ValidateInput(false)]
public ActionResult ResendPassword(EditUserModel model)
{
    try
    {
        Admin admin = new Admin();
        admin.SendForgottenPasswordToUser(model.UserName);
        return View("EditUser", model);
    }
    catch (Exception ex)
    {
        // Error handling here.
    }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top