реагировать в контроллере, который и если ссылка действия нажимается в представлении - PullRequest
0 голосов
/ 02 сентября 2010

На мой взгляд, «EditUser» У меня есть ссылка действия, которую я не всегда нажимаю:

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

В моем контроллере «AdministrationController» у меня есть EditUser ActionResult, и я хотел бы вызвать метод, который посылает забытыйпароль.Но я не знаю, как реагировать, если я нажал на ссылку действия или нет.Я не хочу отправлять пароль каждый раз, когда я вызываю действие «EditUser».

Мое действие в 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);

        }

1 Ответ

2 голосов
/ 02 сентября 2010

Вы можете создать дополнительный метод действия и изменить ссылку действия:

<% = Html.ActionLink («Повторно отправить забытый пароль», «Повторный пароль», this.Model.UserName, null)%>

Метод действия для повторной отправки пароля выглядит примерно так:

[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.
    }
}
...