Asp.net mvc 3 MVC3如何从控制器向控制器传递数据

Asp.net mvc 3 MVC3如何从控制器向控制器传递数据,asp.net-mvc-3,Asp.net Mvc 3,将数据从一个控制器传递到另一个控制器。这就是我正在做的,但我不认为这是正确的方法,请帮助我修改代码使其工作,分享示例/教程 e、 g 我正在使用会员API创建一个用户帐户 公司控制器: } 接触控制器 我希望我想做的事情很清楚。可能使用ViewModels,但我不确定如何将其组合在一起。。。谢谢 您可以将UserID参数直接传递给控制器的方法,因为它是标准的导航流 重定向到操作有一个允许您设置路由值 return RedirectToAction("Create", "Company", n

将数据从一个控制器传递到另一个控制器。这就是我正在做的,但我不认为这是正确的方法,请帮助我修改代码使其工作,分享示例/教程

e、 g

我正在使用会员API创建一个用户帐户

公司控制器:

}

接触控制器


我希望我想做的事情很清楚。可能使用ViewModels,但我不确定如何将其组合在一起。。。谢谢

您可以将
UserID
参数直接传递给控制器的方法,因为它是标准的导航流

重定向到操作
有一个允许您设置
路由值

  return RedirectToAction("Create", "Company", new { id = userIdGenerated() });    
在您的
公司控制器中

public ActionResult Create(int id) { return View(id); }
既然你的
id
会出现在URL中,那么你也可以在帖子中找到它:

[HttpPost]
public ActionResult Create(int id, CompanyInformation companyinformation)

或者,您可以在获取
创建

时将其持久化到模型
公司信息中,您可以将
用户ID
参数直接传递到控制器的方法,因为它是标准的导航流

public ActionResult Action1()
{
   TempData["key"]  =Some_Object;
  return RedirectToAction("Action2");
}

public ActionResult Action2()
{
     var data= TempData["key"];
}
重定向到操作
有一个允许您设置
路由值

  return RedirectToAction("Create", "Company", new { id = userIdGenerated() });    
在您的
公司控制器中

public ActionResult Create(int id) { return View(id); }
既然你的
id
会出现在URL中,那么你也可以在帖子中找到它:

[HttpPost]
public ActionResult Create(int id, CompanyInformation companyinformation)
或者,您可以在GET
Create

public ActionResult Action1()
{
   TempData["key"]  =Some_Object;
  return RedirectToAction("Action2");
}

public ActionResult Action2()
{
     var data= TempData["key"];
}
使用
TempData

使用
TempData


您可以使用TempData

请在下面的链接中查找更多详细信息

您可以使用TempData

请在下面的链接中查找更多详细信息

你好,斯泰芬,谢谢!感谢您的帮助,您能举例说明“或者您可以在GET Create上将其保存到模型公司信息”的意思吗?这是ModelView吗?你能给我举个例子吗?我的意思是如果你的
CompanyInformation
有一个UserId属性,那么你可以在你的create action
return视图(newcompanyinformation{UserId=id})中这样做
并将其保存到隐藏字段的视图中,例如
@Html.HiddenFor(x=>x.UserId)
抱歉问了这么多,最后一个问题,第一个示例是通过URL传递数据,如果我想传递数据而不在URL中显示数据,是否可能?你会怎么做?再次感谢!因此,正如前面的回答所说,
TempData
是你的朋友。看到这个:在动作方法之间传递状态。我认为TempData不适合这个场景,因为我使用Httppost,如果我试图检索它,数据就不在那里了……嗨,Stéphane,谢谢!感谢您的帮助,您能举例说明“或者您可以在GET Create上将其保存到模型公司信息”的意思吗?这是ModelView吗?你能给我举个例子吗?我的意思是如果你的
CompanyInformation
有一个UserId属性,那么你可以在你的create action
return视图(newcompanyinformation{UserId=id})中这样做
并将其保存到隐藏字段的视图中,例如
@Html.HiddenFor(x=>x.UserId)
抱歉问了这么多,最后一个问题,第一个示例是通过URL传递数据,如果我想传递数据而不在URL中显示数据,是否可能?你会怎么做?再次感谢!因此,正如前面的回答所说,
TempData
是你的朋友。请看以下内容:在操作方法之间传递状态。我认为TempData不适合此场景,因为我使用Httppost,如果我尝试检索它,数据就不存在了……下面是一个场景,假设用户转到Controller1,它会创建一个TempData(userId)然后重定向到Controller2,它使用该值,然后用户决定返回Controller1和Controller2,但该值不再可用。。。你会怎么处理?如何在控制器之间保持一个值?THX在controller2上的TempData中再次分配您的用户ID,以便在controller1上轻松获得该值。下面是一个场景,假设用户转到controller1,它将创建一个TempData(用户ID)然后重定向到Controller2,它使用该值,然后用户决定返回Controller1和Controller2,但该值不再可用。。。你会怎么处理?如何在控制器之间保持一个值?THX在controller2上的TempData中再次分配您的用户ID,以便在controller1上轻松获得该值。