2013-03-21 32 views
2

我有很多ASP MVC的擴展方法/幫助類,它們以控制器名稱,操作名稱或視圖名稱作爲參數(與默認的HtmlHelper非常類似方法)。 Visual Studio通常用直紅線強調這些名稱,以表明它們在使用其中一種內置MVC方法時匹配有效的控制器/操作/視圖。有沒有辦法讓我的方法得到同樣的支持?這是一個很好的小功能,但是當我停止使用內置方法時,該功能會慢慢消失。在Visual Studio中使用自定義方法時獲取視圖名稱上的紅色下劃線

快速示例:如果該視圖已知存在,這將在「SomeViewName」字符串下方有一條紅色直線,否則該字符串本身會變成紅色。

public ActionResult SomeAction() 
{ 
    return View("SomeViewName"); 
} 

,這將是我自己的方法之一(這是在一個單獨的庫從MVC網站項目本身)

// Example action using method 
public ActionResult Show(int id) 
{ 
    return ViewOrNotFound("Show", id); 
} 

// Example of the method itself 
private ActionResult ViewOrNotFound(string viewName, int id) 
{ 
    var model = DoSomethingToGetModel(); 
    if (model != null) 
    { 
     return new ViewResult { ViewName = viewName }; 
    } 
    else 
    { 
     return new HttpNotFoundResult(); 
    } 
} 
+0

你能舉出我們正在談論的自己的方法嗎?你有哪些文件和它們在源碼樹中的位置?它們是否與您的應用程序位於同一個命名空間中? – Floremin 2013-03-21 15:07:32

+2

你在使用resharper嗎?這聽起來像是resharper-y ... – Rikon 2013-03-21 15:17:17

+0

@Rikon:你說得對,似乎是一個Resharper功能。我甚至沒有想過要檢查! – rossisdead 2013-03-21 15:22:50

回答

4

顯然,所有你需要做的是使用JetBrains的註解,因爲示例這是一個ReSharper功能。

public void SomeHelper(this HtmlHelper,[AspMvcController] string controller, [AspMvcAction] string Action, [AspMvcView] string viewName) 
{ 
} 
+1

注 - 我必須首先安裝NuGet「ReSharper Annotations Default Implementation」包,並在我的課程中添加JetBrains.Annotations命名空間。但這絕對有效。謝謝! – tclark333 2014-03-11 18:02:42

相關問題