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

C# mvc通过字符串名称呈现控制器的操作,c#,asp.net-mvc,C#,Asp.net Mvc,我正在尝试MVC框架,尝试一些概念验证的想法。这不是生产代码 无论如何,我有一个匿名控制器。我想在那个控制器上执行一个操作,但是,我只有这个控制器的操作名可以作为字符串使用 如何通过字符串名称呈现控制器的操作 谢谢大家! 弗兰科不确定是否有匿名控制器??但是 如果你看一下codeplex上的项目,他们有一个Html.RenderAction 善良 Dan您有多种选择: Asp.net MVC 2 Beta 2曾经是MVC Futures的一部分,它内置了用于这些目的的RenderAction 类

我正在尝试MVC框架,尝试一些概念验证的想法。这不是生产代码

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

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

谢谢大家!


弗兰科

不确定是否有匿名控制器??但是

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

善良


Dan

您有多种选择:

Asp.net MVC 2 Beta 2曾经是MVC Futures的一部分,它内置了用于这些目的的RenderAction 类似的事情在MVC Contrib中通过子控制器实现 或者,您也可以按说明提出部分请求 但你必须小心,因为它们都有问题


尽管如此。你的匿名控制器可能是主要的障碍。但这取决于你拥有它的方式和你访问它的方式。如果您能向我们展示一些代码,这样我们就可以更深入地了解您的问题。尽管我认为您的想法可能不是最优的,但您可以使用以下代码:

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。

您如何拥有匿名控制器?渲染是什么意思?渲染是一个输入错误-我的意思是执行操作。RE:Anonymous-我知道该对象继承自controller,但不确定是哪种类型,例如AccountController、HomeController等,但不确定运行时是哪种类型,例如AccountController、HomeController等Hi Dan-感谢您的帮助我知道这一点,但它不太符合我的需要。谢谢你!你好,罗伯特-部分请求正是我所需要的-谢谢!