【问题标题】:Redirect view to another if a certain condition is met如果满足特定条件,将视图重定向到另一个视图
【发布时间】:2015-03-11 23:50:00
【问题描述】:

我希望我的索引控制器根据登录用户的角色做两件事:

  1. 如果用户的角色是“主人”,那么它应该继续加载包含在网站上注册的公司列表的索引视图。
  2. 如果用户的角色是“管理员”,则视图应重定向到编辑视图,并将用户的公司详细信息预加载到视图中。

这是我遇到问题的第二个操作。考虑以下几点:

public ActionResult Index()
{
    if (Session["userid"] != null)
    {
        if (String.Compare(Convert.ToString(Session["userrole"]), "Master", StringComparison.InvariantCultureIgnoreCase) == 0)
            return View(db.Companies.ToList());

        return View("Edit", new Id = Convert.ToInt32(Session["companyid"])) // this doesn't work
    }

    return RedirectToAction("Index", "Home");
}

如何将用户重定向到另一个视图并预加载所需的数据?

提前致谢!

【问题讨论】:

  • 使用RedirectToAction("Edit", new { id = Convert.ToInt32(Session["companyid"] }); 当然如果你有这样的Action Method。 :)
  • 非常感谢漩涡。像魅力一样工作...请创建一个答案,以便我接受

标签: asp.net-mvc-4 model-view-controller


【解决方案1】:
public ActionResult Index()
{
    if (Session["userid"] != null)
    {
        if (String.Compare(Convert.ToString(Session["userrole"]), "Master", StringComparison.InvariantCultureIgnoreCase) == 0)
            return View(db.Companies.ToList());

        return RedirectToAction("Edit", new { id = Convert.ToInt32(Session["companyid"]});
    }

    return RedirectToAction("Index", "Home");
}

public ActionResult Edit(int id)
{
    ///Get your company by id here
}

【讨论】:

  • 再次感谢 :) 现在我只需要弄清楚如何交换我的会话...我想开始使用加密的 cookie 来代替
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-15
  • 1970-01-01
  • 2017-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多