【问题标题】:Where to intercept resolution of controller/view in ASP.Net MVC for customizations?在哪里拦截 ASP.Net MVC 中控制器/视图的解析以进行自定义?
【发布时间】:2011-03-02 19:59:53
【问题描述】:

我试图找出合适的位置来拦截在 ASP.Net MVC 2 中调用的视图 + 控制器的分辨率。我有一个情况,我有一个控制器和一组相应的视图。我还可以在项目中使用控制器和 N 个视图的自定义版本(或者我们可以使用 MvcContrib 项目中的 Portable Views 之类的东西)。如果控制器或视图的自定义版本在运行时存在,并且用户满足某些条件,我需要调用自定义控制器并使用适当的自定义视图。在设计/编译时,我们不知道可能会进行哪些自定义。

我的第一次运行是使用自定义控制器工厂,如果它存在则返回自定义控制器。但是,此控制器已“连接”到标准视图,如果自定义视图也存在,我无法弄清楚如何返回。

更复杂的是,可能没有自定义控制器,而是自定义视图,反之亦然。

【问题讨论】:

    标签: asp.net asp.net-mvc


    【解决方案1】:

    听起来你走在正确的轨道上。您已经有了自定义控制器选择逻辑,但您还需要有自定义视图选择逻辑。

    您可以覆盖和扩展默认的ViewEngine 以插入您的应用程序,该应用程序使用您自己的逻辑来查找视图位置。 Here's a good walkthrough of a simple ViewEngine 正是这样做的。

    【讨论】:

    • 我最终从自定义 ViewEngine + 我已经在 ControllerFactory 中工作的自定义内容进行了相当自定义的视图发现,这比这个示例走得更远,但它确实让我走上了正确的道路。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 2011-09-21
    • 2017-08-20
    • 2018-05-25
    • 2022-07-02
    • 2013-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多