你好 在我的项目中,我必须通过 username 将欢迎消息传递到索引页面 它是一个 MVC3 ASP.Net Razor 项目
那里有两个 Controller ;一个是登录 Controller ,第二个是家庭 Controller 。从登录 Controller ,我必须将登录人的 UserName 传递给 View 页面。
Login Controller 重定向到另一个名为 Home Controller 的 Controller 。我必须从那里将该值传递给 View 页面。那是我的问题。我已经尝试使用单个 Controller 来查看它的工作情况。
我不能使用单个 Controller ,因为登录 Controller 使用登录页面,而主 Controller 使用主页。两者都是独立的 View 。
我试过像这样,但它不起作用。你能推荐一个好的方法来遵循吗?
登录 Controller
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Index(LoginModel model)
{
if (ModelState.IsValid)
{
if (DataAccess.DAL.UserIsValid(model.UserName, model.Password))
{
FormsAuthentication.SetAuthCookie(model.UserName, false);
return RedirectToAction("Index", "Home" );
}
else
{
ModelState.AddModelError("", "Invalid Username or Password");
}
}
return View();
}
家庭 Controller
public ActionResult Index()
{
return View();
}
最佳答案
你可以试试Session,比如
Session["username"] = username;
并在其他 Controller 中恢复使用
var username = (string)Session["username"]
或者在你的重定向中尝试
return RedirectToAction("Index", "Nome", new{ username: username})
但是你的 Controller 的 Action 必须有像(字符串用户名)这样的参数
public ActionResult Index(string username)
{
return View();
}
关于c# - 如何在 ASP.Net MVC3 中将值从一个 Controller 传递到另一个 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20989474/