Mvc3 C# - 是不是可以从不同的控制器调用动作?

Posted

技术标签:

【中文标题】Mvc3 C# - 是不是可以从不同的控制器调用动作?【英文标题】:Mvc3 C# - Is it possible to call an action from a different controller?Mvc3 C# - 是否可以从不同的控制器调用动作? 【发布时间】:2013-07-29 11:26:43 【问题描述】:

在我的项目中,我有两个不同的控制器。 这是主要的:

public class Main : Controller

    public ActionResult Index()
    
        return View();
    

这是另一个:

public class OtherOne : Controller

    public ActionResult RandomAction()
    
        return ... //more code here
    

我应该在 "OtherOne/RandomAction" 中返回什么以获得与 "Main/Index" 操作相同的结果?

【问题讨论】:

你想达到什么目的?像“主/索引”这样的相同结果是什么意思。如果两个动作方法具有相同的逻辑,为什么你有两个动作?最简单的方法是使用 RedirectToAction 并将数据存储在可以在 Main/Index 中访问的 TempData 集合中。 【参考方案1】:

就这么简单:

public class OtherOneController : Controller

    public ActionResult RandomAction()
    
        return RedirectToAction("Index", "Main");
    

您的 Controller 类名必须是 MainController 和 OtherOneController。如果您想更改它,请查看此帖子: change controller name convention in ASP.NET MVC

这是你的主控制器:

public class MainController : Controller

    public ActionResult Index()
    
        return View();
    

【讨论】:

以上是关于Mvc3 C# - 是不是可以从不同的控制器调用动作?的主要内容,如果未能解决你的问题,请参考以下文章

从 JavaScript 向不同文件夹中的 C# 控制器进行 ajax 调用

如何从 MVC3 控制器调用 SQL Server 数据库函数? [复制]

从不同的进程C#调用方法[关闭]

MVC3 - 不同的设备,不同的视图,相同的控制器

从 .NET 控制台调用 JSON WebService 的最佳方式

c# Azure MVC 从控制器调用 .Result 检查 blob 是不是存在