c# - 如何在 ASP.Net MVC3 中将值从一个 Controller 传递到另一个 Controller

标签 c# asp.net-mvc-3

你好 在我的项目中,我必须通过 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/

相关文章:

c# - 在 Asp.Net MVC 2 中使用 NServiceBus

asp.net - 如何操作 IIS7 提供的静态文件

c# - ASP.NET MVC3中不同区域的自定义错误页面

c# - 在 Controller 中返回不同的 View

asp.net-mvc-3 - Razor:隐藏密码控制(2页注册)

asp.net - 无法使用 JQGrid 添加行

c# - DEBUG - 不会为 SonarQube 之外的以下文件导入代码覆盖率

c# - WCF 客户端和服务终结点使用相同的绑定(bind)

c# - C# 中的 Des 和 3Des 以及 ecb(来自 C)

c# - Linq join() - 加入两个实体并选择一个