C# 如何在同一控制器内沿操作传递变量?

C# 如何在同一控制器内沿操作传递变量?,c#,ajax,asp.net-mvc,asp.net-mvc-5,C#,Ajax,Asp.net Mvc,Asp.net Mvc 5,就这样吧 /控制器/ActionA/1项目显示列表id-用户id /控制器/ActionB/2选择项目的项目id /控制器/ActionC/3更新项目,需要使用id和项目id 当我从ActionA到ActionB再到ActionC时,当我到达ActionC时,我是否可以检索ActionA的URL参数,在本例中为“1”?反之亦然 任何帮助都将不胜感激 这取决于你从一个动作到另一个动作的方式。标准方法是RedirectToAction方法,该方法: 您需要在URL中提供所有前面的参数,这些参数是您为

就这样吧

/控制器/ActionA/1项目显示列表id-用户id /控制器/ActionB/2选择项目的项目id /控制器/ActionC/3更新项目,需要使用id和项目id 当我从ActionA到ActionB再到ActionC时,当我到达ActionC时,我是否可以检索ActionA的URL参数,在本例中为“1”?反之亦然


任何帮助都将不胜感激

这取决于你从一个动作到另一个动作的方式。标准方法是RedirectToAction方法,该方法:


您需要在URL中提供所有前面的参数,这些参数是您为转到其他操作而创建的。由于web是无状态的,每个请求必须包含完成该请求所需的所有信息

@Html.ActionLink("Action B", "ActionB", 
    new{id=listItem.actionBId, actionAId = Model.Id});
然后:

public ActionResult ActionB(int id, int actionAId)
{
    ...
}
避免这种情况的唯一方法是,如果ActionB所处理的项目与ActionA的项目存在某种关联,在这种情况下,您希望从服务器端推断该信息:

public ActionResult ActionB(int id)
{
    int actionAId = GetActionAItemByB(id).Id;
    ...
}

actionA->showlistofitemshas id-user id actionB->select item->id of item actionC->updateitem,需要使用id和item id我想这应该可以,所以你的意思是我只是在执行操作时添加id,对吗?@PrashantGhimire:嗯,这就是使用重定向从一个操作转到另一个操作的方法。这也是一种标准方法。但这里可能有术语混淆。听起来您可能通过从渲染视图调用新动作来从一个动作切换到另一个动作?这并不是真的从一个到另一个,这只是从UI调用一个操作。我会尝试问我是否需要进一步的帮助,谢谢!::我正在考虑用cookies来解决这个问题,你怎么看@PrashantGhimire:请记住,Cookie是在所有浏览器窗口中共享的,因此当有人从多个选项卡使用您的站点时,或者如果他们单击“后退”和“前进”按钮,您可能会获得意外的用户体验。
public ActionResult ActionB(int id)
{
    int actionAId = GetActionAItemByB(id).Id;
    ...
}