【问题标题】:Redirect to a POST action重定向到 POST 操作
【发布时间】:2013-10-21 18:29:13
【问题描述】:

我有一个名为Login 的发布操作,它执行一些服务器端验证和用户的实际登录。我有另一个用户重置密码的发布操作。我希望此操作在成功后直接让他们登录,而不是让他们重新登录以输入新凭据。

我想以某种方式调用我已经编写的逻辑。我将如何实现这一目标?

【问题讨论】:

  • 这是一个 ajax 调用吗?
  • 不,这只是一个普通的表单帖子 -> 控制器操作 -> (希望)登录操作。

标签: c# asp.net-mvc-4 actionresult


【解决方案1】:

您不能只提取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
    }
}

【讨论】:

  • 我可以,但还有一个问题是我试图从另一个控制器调用这个动作——当它是静态的时候我不能做重定向/ViewBag 的事情/TempData 的事情,并拉动那些部分out 基本上会破坏重用它的意义(大约有三行不是提到的过程)。没有静态修饰符是否可以进行这项工作?
  • @idlackage 你可以创建某种基本控制器,两个控制器都继承,并在那里有你的登录方法。您将能够从两个控制器中调用它,并且没有任何东西必须是静态的。
猜你喜欢
  • 2016-07-30
  • 1970-01-01
  • 1970-01-01
  • 2017-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-03
  • 1970-01-01
相关资源
最近更新 更多