MVC 3/4从控制器传递参数到另一个控制器

时间:2012-08-26 15:41:03

标签: asp.net-mvc-3 asp.net-mvc-4

我有一个登录表单,它要求UserName,Password,TokenID(每个用户都知道他的令牌,他们让它访问API)。我希望能够获得他们输入的Token API并将其传递给/ Home / Index。这样做的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

好的,首先你有一个用户输入UserNamePasswordTokenId的视图,所以让视图有一个如下所示的模型。

public class LoginModel{

public string UserName{get; set;} 
public string Password{get; set;}
public string TokenId{get; set;}
}

从视图中您可以返回此模型,该模型将包含所有这些值。

现在,您需要将这些值传递给Home/Index,您可以将表单提交给Index操作。

public ActionResult Index(LoginModel model)
{
 string gotcha = model.TokenId;
}

但是,如果你想将一个表单提交给一个不同的操作,例如控制器“登录”,然后将这些值传递给另一个控制器,你可以这样做。

// defined in Login Controller
public ActionResult Index(LoginModel model)
{
 TempData["TokenId"] = model.TokenId;
 return RedirectToAction("Dashboard","Account");
}

// defined in Account Controller
public ActionResult Dashboard()
{
 string gotVal = TempData["TokenId"]

}

有两种方法可以在两个操作之间传递值,请参阅this link