Asp.net MVC 2:是否可以为用户控件调用控制器的特定操作

时间:2012-06-08 03:46:49

标签: asp.net-mvc-2

我刚开始将我的asp.net网站从Webform升级到MVC 2.到目前为止,它比Webform更清晰,更轻松。我正在坚持用不同的行动来重新发送用户控件。

名为Banner.ascx的我的用户控件位于Site.Master。这个Banner.ascx来自DataView["BannerUrl"]的网址是在HomeController>中设置的。指数行动。当我将URL指向/Home/Index时,这将运行正常。现在我希望这个Banner.ascx控件只从HomeController获取DataView>索引我指向的任何操作,例如当指向/ Article / Detail / 1的点URL时,我希望HomeConttroller的Banner.ascx运行操作索引获取DataView["BannerUrl"]

任何回应都表示赞赏。提前谢谢。

1 个答案:

答案 0 :(得分:1)

您可以像调用任何其他服务器端代码一样调用MVC Controller。您可以通过IControllerFactory访问已注册的ControllerBuilder.GetControllerFactory()实例。然后,您可以使用控制器工厂来获取IController实例的初始化实例,方法是在RouteData参数的RequestContext中传递路由值(这些将是controller = "Home"然后action = "Index"IController.Execute()将以与MVC生命周期收到请求相同的方式执行Action。

相关问题