繁体   English   中英

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

[英]c# mvc render a controller's action - by string name

我正在尝试使用MVC框架,以尝试一些概念证明。 这不是生产代码。

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

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

谢谢你们!

弗兰科

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

如果您在Html.RenderAction上查看MVC期货项目,则它们具有Html.RenderAction

善良,

您有多种选择:

  • 具有内置RenderAction() Asp.net MVC 2 Beta 2 (以前是MVC Futures的一部分)
  • MVC Contrib中使用Sub控制器实现了类似的操作
  • 或者您可以按照此处的说明使用PartialRequest()

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

即使。 您的匿名控制器可能会成为主要障碍。 但这取决于您拥有它的方式以及访问方式。 如果您向我们展示一些代码,会更容易,这样我们可以对您的问题提供更多的见解。

尽管我认为您的想法可能不是最佳选择,但是您可以使用以下代码:

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。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM