我正在讨论MVC框架,尝试一些概念证明。这不是生产代码..
无论如何 - 我有一个匿名控制器。我想在该控制器上执行一个Action,但是,我只有这个控制器的动作名称可用作字符串。
如何通过字符串名称呈现控制器的操作?
谢谢大家!
弗兰科
答案 0 :(得分:0)
答案 1 :(得分:0)
您有多种选择:
RenderAction()
用于此目的PartialRequest()
但是你必须要小心,因为所有这些都存在问题。
尽管如此。您的匿名控制器可能会成为主要障碍。但这取决于你拥有它的方式以及你如何访问它。如果您向我们展示一些代码会更容易,这样我们就可以更深入地了解您的问题。
答案 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。