2010-09-02 66 views
0

其中,如果在我看來「EditUser」反應過來我有一個動作鏈接,我點擊並不總是:在控制器,動作鏈接被點擊鑑於

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

在我的控制器「AdministrationController」我有一個EditUser ActionResult那裏我想調用發送忘記密碼的方法。但是我不知道如何反應,如果我點擊一個行動鏈接或不。每次調用Action「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); 

     } 

回答

2

您可以創建一個額外的操作方法,並改變操作鏈接:

<%= Html.ActionLink( 「重新發送忘記的密碼」, 「ResendPassword」 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. 
    } 
}