c#mvc通过字符串名称呈现控制器的操作

时间:2009-11-27 14:03:28

标签: c# asp.net-mvc

我正在讨论MVC框架,尝试一些概念证明。这不是生产代码..

无论如何 - 我有一个匿名控制器。我想在该控制器上执行一个Action,但是,我只有这个控制器的动作名称可用作字符串。

如何通过字符串名称呈现控制器的操作?

谢谢大家!

弗兰科

3 个答案:

答案 0 :(得分:0)

不确定匿名控制器?但是......

如果你看一下codeplex上的MVC futures项目,他们会有Html.RenderAction

善,

答案 1 :(得分:0)

您有多种选择:

  • Asp.net MVC 2 Beta 2 (以前是 MVC期货的一部分),内置RenderAction()用于此目的
  • 类似的事情在 MVC Contrib 与子控制器
  • 中实现
  • 或者您可以PartialRequest()
  • 解释{{1}}

但是你必须要小心,因为所有这些都存在问题。

尽管如此。您的匿名控制器可能会成为主要障碍。但这取决于你拥有它的方式以及你如何访问它。如果您向我们展示一些代码会更容易,这样我们就可以更深入地了解您的问题。

答案 2 :(得分:0)

虽然我认为您的想法可能不是最佳,但您可以使用此代码:

var controller = new SomeController(null);
var controllerContext = new ControllerContext(new HttpContextWrapper(System.Web.HttpContext.Current),new RouteData(),controller);
var actionInvoker = new ControllerActionInvoker();
actionInvoker.InvokeAction(controllerContext, "Test");

我需要有关此代码如何工作的更多详细信息,请参阅Reflector中的System.Web.Mvc。