我的解决方案中有一个单独的项目,其中包含一些Controllers和已编译的视图。
我在MVC应用程序中将这些控制器用于其他控制器的基类,并且使用RazorGenerator编译视图。

可以说B是带有非抽象操作方法SomeAction的基本控制器,该方法返回View(“ _ MyView”)。 _MyView.cshtml是使用RazorGenerator编译的。

可以说,控制器A继承了B,但没有覆盖SomeAction。

我试图制作另一个视图“〜/ Views / A / _MyView.cshtml”以覆盖默认视图,但是它不起作用。我的问题是我该怎么做?

附加信息

1)我知道默认情况下,视图是按照这些路径中的顺序搜索的

"~/Views/{1}/{0}.cshtml",
"~/Views/{1}/{0}.vbhtml",
"~/Views/Shared/{0}.cshtml",
"~/Views/Shared/{0}.vbhtml"


2)放置“〜/ Views / Shared / _MyView.cshtml”确实会覆盖视图,但不仅对于控制器A,而且对于继承的所有其他控制器


3)重写SomeAction以返回base.SomeAction()不起作用

更新

我在这里找到了类似的问题,但按照建议进行操作没有任何反应
RazorGenerator Issues

我已经发布了自己的问题here

先感谢您!

最佳答案

到目前为止,我唯一的解决方法是在消费者应用程序上安装RazorGenerator,并将视图_MyView.cshtml设置为RazorGenerated。 RazorGenator然后选择正确的视图。

给其他访问者的另一个注意事项是不要将错误的视图混淆与去往基本控制器而不是消费者控制器的路由加在一起。在尽早解决此问题之前,能够弄清楚实际的错误观点是由OP作为正确的控制器提供的,我对此有疑问。我的基本application_start中有删除路由重复项的代码。

10-04 10:38