有没有办法让Resharper使用我的自定义模板创建不存在的Razor视图?

问题描述:

在开发ASP.NET MVC,当动作没有相对应的,ReSharper的将显示选项:有没有办法让Resharper使用我的自定义模板创建不存在的Razor视图?

  • 与布局创建Razor视图Edit
  • 创建Razor视图Edit
  • (其他选项)

我想要的是添加自己的ReSharper的文件模板作为一个选项在这里,像这样:

  • 从“搜索表单”模板创建Razor视图
  • 从“编辑表单”模板创建Razor视图

有没有办法得到这个工作?

在此先感谢。

我还没有测试过它,但它看起来像你可以写一个插件来为你做这个。我建议获取ReSharper SDK,然后在反编译器(dotPeek,natch)的%PROGRAMFILES%\ JetBrains \ ReSharper \ v7.1 \ bin文件夹中打开程序集。

查看IMvcQuickFixTemplateProvider和JetBrains.ReSharper.Intentions.Razor.QuickFixes.Mvc中的MvcQuickFixTemplateProviderBase。

被调用以提示您创建新视图的MVC快速修复循环遍及系统注册的所有提供程序,并添加三项 - 局部视图,带布局和简单视图的视图。您可以为您感兴趣的每个模板创建一个实现IMvcQuickFixTemplateProvider的类。然后您需要创建3个模板,部分使用布局和正视图。但是,这需要在编译时了解所有模板。

如果您事先不知道所有模板,则可以尝试创建一个实现IQuickFix的类,并将AspConfigurableNotResolvedErrorHighlighting作为构造函数参数。这会将您的快速修复添加到未解决视图的错误突出显示中,并且您现在可以执行任何您想要的操作,在菜单中显示您拥有的任何模板的任何操作。查看MvcViewQuickFix了解ReSharper如何执行此操作的详细信息。

+0

我没有时间来完全检查你的解决方案,但它似乎很有前途。我会接受你的解决方案,当我完成时我会给你反馈。非常感谢。 – 2013-02-21 13:05:10

+0

我找到了你提到的课程。一旦我实现了我自己的MvcQuickFixTemplateProviderBase,我该如何替换现有的? – 2013-02-21 14:25:04

+0

或者根据现有的菜单添加我自己的菜单项? – 2013-02-21 17:49:16