我在这里调用另一个控制器和动作方法
[HttpPost]
public ActionResult Index(LoginModel loginModel)
{
if (ModelState.IsValid)
{ some lines of code . bla bla bla
return RedirectToAction("indexaction","premiumcontroller");
}
}
现在,会发生什么是现在执行premiumcontroller的indexaction。
如何将loginmodel(或loginmodel对象)的值传递给premiumcontroller?我想不出来。感谢。
我正在使用asp.net mvc 3。
答案 0 :(得分:1)
您可以将它们作为查询字符串参数传递:
return RedirectToAction(
"index",
"premium",
new {
id = loginModel.Id,
username = loginModel.Username,
}
);
并在index
控制器的premium
操作内:
public ActionResult Index(LoginModel loginModel)
{
...
}
另一种可能性是使用TempData:
[HttpPost]
public ActionResult Index(LoginModel loginModel)
{
if (ModelState.IsValid)
{
// some lines of code . bla bla bla
TempData["loginModel"] = loginModel;
return RedirectToAction("index", "premium");
}
...
}
并在index
控制器的premium
操作内:
public ActionResult Index()
{
var loginModel = TempData["loginModel"] as LoginModel;
...
}
答案 1 :(得分:1)
您可以使用new关键字传递控制器操作中的值...
return RedirectToAction(
"indexaction",
"premium",
new {
Id = loginModel.Id,
UserName = loginModel.UserName,
Password = loginModel.Password
}
);
在你的另一个控制器中
public ActionResult indexaction(int id, string uName, string paswrd)
{
// do some logic...
}