C# 如何将值从一个控制器方法传递到另一个控制器方法?

C# 如何将值从一个控制器方法传递到另一个控制器方法?,c#,asp.net-mvc-3,C#,Asp.net Mvc 3,我是MVC3的初学者,我想从另一个控制器的方法中获取一个值。这里有两种方法: [HttpPost] public ActionResult Create(TennisClub tennisclub) { if (ModelState.IsValid) { db.TennisClubs.Add(tennisclub); db.SaveChanges(); return R

我是MVC3的初学者,我想从另一个控制器的方法中获取一个值。这里有两种方法:

    [HttpPost]
    public ActionResult Create(TennisClub tennisclub)
    {
        if (ModelState.IsValid)
        {
            db.TennisClubs.Add(tennisclub);
            db.SaveChanges();
            return RedirectToAction("AssignManager");  
        }

        return View(tennisclub);
    }

    [HttpPost]
    public ActionResult AssignManager(Manager manager)
    {

    }
所以,当我创建一个新的网球俱乐部时,我想立即指派一名经理来管理它。。。为此,我需要主键“ID”

所以我的问题是:如何在我的“AssignManager”方法中获得这个ID?提前感谢

您无法重定向到使用
[HttpPost]
属性修饰的操作。重定向不是这样工作的。重定向意味着您正在向具有新位置标头的客户端发送301 HTTP状态代码,并且客户端向该新位置发出GET请求

因此,从AssignManager操作中删除
[HttpPost]
属性后,可以将id作为参数传递:

return RedirectToAction("AssignManager", new { id = "123" });  
然后:

[HttpPost]
public ActionResult AssignManager(int id)
{

}
无法重定向到使用
[HttpPost]
属性修饰的操作。重定向不是这样工作的。重定向意味着您正在向具有新位置标头的客户端发送301 HTTP状态代码,并且客户端向该新位置发出GET请求

因此,从AssignManager操作中删除
[HttpPost]
属性后,可以将id作为参数传递:

return RedirectToAction("AssignManager", new { id = "123" });  
然后:

[HttpPost]
public ActionResult AssignManager(int id)
{

}
您还需要从操作中删除
[HttpPost]
属性

public ActionResult AssignManager(int id) {
  //...
}
您还需要从操作中删除
[HttpPost]
属性

public ActionResult AssignManager(int id) {
  //...
}

基本上,您还需要一个
GET
AssignManager方法,该方法将有一个参数告诉它应该将管理器分配给哪个
tenniscrub

[HttpGet]
public ActionResult AssignManager(int tennisClubId)
{
    // here, you will want to return AssignManager view
}
当从
Create
重定向到
AssignManager
时,您可以指定
tenniscrub
的id:

return RedirectToAction("AssignManager", new { tennisClubId = tennisclub.Id });

基本上,您还需要一个
GET
AssignManager方法,该方法将有一个参数告诉它应该将管理器分配给哪个
tenniscrub

[HttpGet]
public ActionResult AssignManager(int tennisClubId)
{
    // here, you will want to return AssignManager view
}
当从
Create
重定向到
AssignManager
时,您可以指定
tenniscrub
的id:

return RedirectToAction("AssignManager", new { tennisClubId = tennisclub.Id });

为什么不在添加网球俱乐部时指定经理呢?因为我需要在将其指定给网球俱乐部之前创建经理,对不起,我忘记了这个细节…Francesco,通过引用指定即可,数据上下文将为您记录此内容。为什么不在添加网球俱乐部时在此处指定经理?因为我需要在将其指定给网球俱乐部之前创建经理,抱歉,我忘记了此详细信息…Francesco,通过引用指定,数据上下文将为您记录此内容。感谢您的回复+1感谢您的回复+1感谢您的回复+1感谢您的回复+1感谢您的回复+1感谢您的回复+1