2013-03-19 7 views
5

として、私は管理エリアの午前今私はこれはで私の他のアクションですリダイレクトアクションparmenter

ChangePasswordModel mode = new ChangePasswordModel(); 
       mode.ConfirmPassword = password; 
       mode.NewPassword = password; 
       mode.OldPassword = user.Password; 
       return RedirectToAction("ChangePassword", "Account",new { area = '/' } , new {model = mode}); 

を送ることができますどのように既定の領域にあるコントローラーをアカウントに値を送信したいです私は私のコードをリダイレクトする場所アカウントコントローラが

[Authorize] 
     [HttpPost] 
     public ActionResult ChangePassword(ChangePasswordModel model) 
     { 
      if (ModelState.IsValid) 
      { 

       // ChangePassword will throw an exception rather 
       // than return false in certain failure scenarios. 
       bool changePasswordSucceeded; 
       try 
       { 
        MembershipUser currentUser = Membership.GetUser(User.Identity.Name, true /* userIsOnline */); 
        changePasswordSucceeded = currentUser.ChangePassword(model.OldPassword, model.NewPassword); 
       } 
       catch (Exception) 
       { 
        changePasswordSucceeded = false; 
       } 

       if (changePasswordSucceeded) 
       { 
        return RedirectToAction("ChangePasswordSuccess"); 
       } 
       else 
       { 
        ModelState.AddModelError("", "The current password is incorrect or the new password is invalid."); 
       } 
      } 

      // If we got this far, something failed, redisplay form 
      return View(model); 
     } 

答えて

4

There isn't an overload for RedirectToAction that takes 4 parameters

これを試してみてください:

return RedirectToAction(
    "ChangePassword", 
    "Account", 
    new { area = "", model = mode }); 
+1

+1になります。私は間違いを見ていない、あなたは正しい。 –

+0

ITsは動作していますが、[HttpGet]アクションにリダイレクトしています。[Httppost]メソッドにリダイレクトします。 –

+0

@MoeezAgha問題はありません。 'HttpPost'アクションにリダイレクトすることはできません。' HttpGet'でなければなりません。 – mattytommo

3
return RedirectToAction("ChangePassword", "Account", 
    new { area = "other_area_name", model = mode }); 

@mattytommoの答えは、4つのパラメータにはオーバーロードメソッドが存在しない、適切なソリューションです。私は自分の答えを更新しました。

+0

私は何をすべきことは、デフォルトエリア –

+0

ある場合にだけ、それは –

+0

のような地域のために何も書かない、あなたのエリアを登録しましたXXXAreaRagistration.csという名前のエリアフォルダにあります。 –

関連する問題