使用同一控制器内的参数调用Action Method

时间:2014-05-15 18:40:14

标签: asp.net-mvc

public ActionResult Faced(Vira model)
{
    HomeIndex helper = new HomeIndex();
    ...
}

上述操作方法将在以下内容中调用:

public ActionResult BackToEmp()
{
    ..
    Vira vr = new Vira();
    Vira.Email="abc@abc.com";
    Vira.Password="123456";
    return RedirectToAction("Faced");
}

模型参数Faced具有的方法,属于Vira类:

public class Vira{
    public string Email { get; set; }
    public string Password { get; set; }
}

我需要将Vira对象传递给方法Faced。我以为RedirectToAction应该没问题。但是没弄清楚如何发送它?什么是最好的方式?

3 个答案:

答案 0 :(得分:1)

实际上你应该可以这样做:

return this.Faced(vr);

但是,如果您想确保用户的网址发生更改......您必须使参数更简单:

public ActionResult Faced(string email, string password)
{
    HomeIndex helper = new HomeIndex();
...
}
public ActionResult BackToEmp()
{
    return RedirectToAction("Faced", new { email = "abc@abc.com", password = "123456" });
}

答案 1 :(得分:1)

您可以使用RedirectToAction

的重载
  public ActionResult BackToEmp()
  {
    ...
   Vira vr = new Vira();
    vr.Email="abc@abc.com";
    vr.Password="123456";
    return RedirectToAction("Faced", new {model =vr});
 }

我希望它会有所帮助。

答案 2 :(得分:1)

Inanikian的答案将完成工作,但是如果我可以提出建议,如果您使用所需的信息构建Vira类的每个实例而不是回顾添加它,则会更容易阅读。例如,您可以添加两个参数构造函数,如下所示:

public class Vira {
    public string Email { get; private set; }
    public string Password { get; private set; }
    public Vira (string email, string password) {
        this.Email = email
        this.Password = password
    }
}

然后你的控制器动作将保持清淡:

public ActionResult BackToEmp()
{
     return RedirectToAction("Faced", new Vira("abc@abc.com", "123456"));
}