1

使用 MVC Razor 时,您经常编写 @Url.Content("~/images/someimage.png") 并在该字符串上获得智能感知 - 它以某种方式知道这是一条路径。

我为 Url.Content() 创建了一个扩展方法,但在输入路径参数时它没有得到智能感知。

有谁知道您是否可以在参数上添加某种属性,或者是否有更好的方法(覆盖?)我可以插入并更改默认 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,只是意识到这可能是普通 VS 用户实际上没有的特定于 resharper 的功能。我禁用了 Resharper intellisense,只是打开了常规的 VS intellisense,并且路径特定的自动完成功能不起作用。所以这是一个更清晰的功能,而不是编程问题

4

3 回答 3

5

马特,这确实是 ReSharper 的功能。您需要使用 PathReferenceAttribute 属性标记 contentPath 参数。您可以从 ReSharper → 选项 → 代码检查 → 代码注释将其实现复制到您的项目中。

于 2012-09-22T18:33:18.673 回答
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 获取)的方式。

如果您谈论的不止这些,就智能感知建议可能的值而言,可能是一个属性......

于 2012-09-22T07:25:10.953 回答
0

试试这个http://mvccontrib.codeplex.com/wikipage?title=T4MVC以获得静态内容智能感知。

于 2012-09-22T18:47:00.443 回答