首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >不同控制器上的.NET MVC调用方法

不同控制器上的.NET MVC调用方法
EN

Stack Overflow用户
提问于 2009-08-18 21:38:25
回答 6查看 86K关注 0票数 47

有人能告诉我如何在action方法中调用不同控制器上的方法吗?我不想重定向。我想在另一个控制器上调用一个返回字符串的方法,并在我的action方法中使用响应。

EN

回答 6

Stack Overflow用户

发布于 2009-08-20 07:07:32

我听起来好像你应该重构你的应用程序,并将生成字符串的功能提取到一个新的独立类中(或者重用一个现有的类,如果你有一个合适的类),并让两个控制器都使用那个类。

票数 42
EN

Stack Overflow用户

发布于 2014-12-04 18:16:26

您可以使用以下方法调用另一个控制器上的方法:

代码语言:javascript
复制
var otherController = DependencyResolver.Current.GetService<OtherController>();
var result = otherController.SomeMethod();

在ASP.NET MVC5中,这对我很有效。希望它也能为你工作。

票数 23
EN

Stack Overflow用户

发布于 2010-12-06 01:07:19

您可以通过HtmlHelperAction方法实现这一点。

在视图中,您可以这样做:

代码语言:javascript
复制
@Html.Action("OtherAction")

然而,在动作方法中获取HtmlHelper的实例并不简单(通过设计)。事实上,这是一个如此可怕的黑客攻击,以至于我甚至不愿意发布它……

代码语言:javascript
复制
var htmlHelper = new HtmlHelper(new ViewContext(
                                      ControllerContext, 
                                      new WebFormView(ControllerContext, "HACK"),
                                      new ViewDataDictionary(),
                                      new TempDataDictionary(),
                                      new StringWriter()),
                                new ViewPage());

var otherViewHtml = htmlHelper.Action("ActionName", "ControllerName");

你可能需要从MVC2的ViewContext构造函数中删除StringWriter参数。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1296680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档