2013-02-20 40 views
1

在開發ASP.NET MVC,當動作沒有相對應的,ReSharper的將顯示選項:有沒有辦法讓Resharper使用我的自定義模板創建不存在的Razor視圖?

  • 與佈局創建Razor視圖Edit
  • 創建Razor視圖Edit
  • (其他選項)

我想要的是添加自己的ReSharper的文件模板作爲一個選項在這裏,像這樣:

  • 從「搜索表單」模板創建Razor視圖
  • 從「編輯表單」模板創建Razor視圖

有沒有辦法得到這個工作?

在此先感謝。

回答

3

我還沒有測試過它,但它看起來像你可以寫一個插件來爲你做這個。我建議獲取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

相關問題