2013-10-21 85 views
0

我有一個名爲Login的發佈操作,它執行一些服務器端驗證以及用戶的實際登錄。我有另一個用戶重置密碼的帖子操作。我希望此操作能夠在成功時直接登錄它們,而不是將它們重新登錄回以鍵入其新憑據。重定向到POST操作

我想以某種方式調用我已經寫過的邏輯。我將如何實現這一目標?

+0

這是一個ajax調用嗎? –

+0

不,這只是一個普通的表單 - >控制器操作 - >(希望)登錄操作。 – idlackage

回答

0

難道你不能只提取Login動作的一部分,它將實際登錄到控制器的另一個方法中嗎?然後也可以從您的ResetPassword操作中調用。

public class FirstController : BaseLoginController 
{ 
    [HttpPost] 
    public ActionResult Login() 
    { 
     base.ExecuteLogin(); 
    } 
} 

public class SecondController : BaseLoginController 
{ 
    [HttpPost] 
    public ActionResult ResetPassword() 
    { 
     base.ExecuteLogin(); 
    } 
} 

public class BaseLoginController 
{ 
    protected void ExecuteLogin() 
    { 
     // login logic 
    } 
} 
+0

我可以,但還有一個問題是我試圖從另一個控制器調用此動作 - 靜態時我無法執行重定向/ ViewBag事物/ TempData事物,並且將這些零件拉出基本上會打敗重用它(大約有三行不是所提到的過程)。是否有可能在沒有靜態修飾符的情況下進行這項工作? – idlackage

+0

@idlackage你可以創建兩種控制器繼承的基本控制器,並在其中擁有你的登錄方法。你可以從兩個控制器中調用它,而且不必是靜態的。 – dom