Наскоро започнах да работя върху приложение MVC 5 и се натъкнах на главоболие по отношение на интелигентността в моите изгледи на Razor. Мисля, че това изображение обобщава проблема доста добре (извинете за малкия размер, моля, щракнете с десния бутон и отворете в нов раздел или прочетете преписа по-долу):
За тези от вас, които не могат да видят това ясно, моето извикване на Html.ActionLink("Create new", "Create")
води до оплакване на IDE от следното:
'System.Web.WebPages.Html.HtmlHelper'
не съдържа дефиниция заActionLink
и претоварването на най-добрия метод за разширение'System.Web.Mvc.Html.LinkExtensions.ActionLink(System.Web.Mvc.HtmlHelper, string, string)'
има някои невалидни аргументи
Но ясно е, че ако предам два низа към метод за разширение на System.Web.Mvc.HtmlHelper
, това точно съвпада с необходимия подпис {{extensionmethod}}(System.Web.Mvc.HtmlHelper, string, string)'
. Какъв е проблемът тук?
Колкото и да е странно, това засяга само Intellisense; изгледът се компилира и работи добре. Намерих няколко връзки, които предполагам, че Visual Studio 2012 (което използвам) има проблеми с Razor 3 intellisense. Приетото решение е да инсталирате Web Tools 2013, което вече направих. Рестартирането на IDE не показа разлика.