【发布时间】:2012-08-26 15:41:03
【问题描述】:
我有一个登录表单,它要求输入用户名、密码、令牌ID(每个用户都知道他的令牌,他们得到它来访问 API)。我希望能够获取他们输入的令牌 API 并将其传递给 /Home/Index。这样做的最佳方法是什么?
【问题讨论】:
-
只有一个
Login到Home吗?还是在那之后你可能还需要它?
标签: asp.net-mvc-3 asp.net-mvc-4
我有一个登录表单,它要求输入用户名、密码、令牌ID(每个用户都知道他的令牌,他们得到它来访问 API)。我希望能够获取他们输入的令牌 API 并将其传递给 /Home/Index。这样做的最佳方法是什么?
【问题讨论】:
Login到Home吗?还是在那之后你可能还需要它?
标签: asp.net-mvc-3 asp.net-mvc-4
好的,首先你有一个视图,用户将在其中输入UserName、Password 和TokenId,所以让视图有一个如下所示的模型。
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
【讨论】: