当使用MVC Razor时,你经常会写@ Url.Content(“〜/ images / someimage.png”),你会在那个字符串上获得intellisense - 它知道它是一条路径。
我为Url.Content()创建了一个扩展方法,但在键入path参数时它没有获得intellisense。
有没有人知道你是否有某种属性可以放在参数上,还是有更好的方式(覆盖?)我可以切入并更改默认的Url.Content的行为?
public static string ContentExtended(this UrlHelper urlHelper, string contentPath)
{
string result = urlHelper.Content(contentPath);
// do stuff here to remove application folder name on godaddy hosting
return result;
}
编辑:我使用resharper,并且意识到这可能是一个特定于resharper的功能,常规的VS用户实际上并没有。我禁用了Resharper intellisense,并且只启用了常规的VS intellisense,并且路径特定的自动完成功能无效。所以这是一个resharper功能,而不是编程问题
答案 0 :(得分:5)
Matt,这真的是ReSharper的功能。 您需要使用PathReferenceAttribute属性标记contentPath参数。 您可以从ReSharper→选项→代码检查→代码注释中将其实现复制到您的项目中。
答案 1 :(得分:0)
您需要提供XML文档:
/// <summary>
/// Lorem ipsum...
/// </summary>
/// <param name="urlHelper">The helper to provide content to</param>
/// <param name="contentPath">The path to the content</param>
这不仅适用于扩展方法 - 它是您为所有内容提供文档(由IntelliSense选取)的方式。
如果你谈论的不仅仅是这个,那么在智能感知方面建议可能的值, 可能是一个属性......
答案 2 :(得分:0)
试试这个http://mvccontrib.codeplex.com/wikipage?title=T4MVC以获得静态内容intellsense。