文本/ x-jquery-tmpl脚本模板中的VS2010 IntelliSense

Bob*_*Bob 20 html intellisense jquery visual-studio-2010

我一直在使用jQuery模板,我非常喜欢使用它.IDE观点的唯一缺点是脚本标记内缺少HTML IntelliSense.有没有办法愚弄VS2010,以便模板脚本标签内的标记获得IntelliSense和语法高亮?

Can*_*cer 6

我为ASP.NET MVC 3创建了一个帮助方法,其工作原理如下,受Html.BeginForm的启发:

在视图中:

@using (Html.BeginHtmlTemplate("templateId"))
{
    <div>enter template here</div>
}
Run Code Online (Sandbox Code Playgroud)

@using范围内的任何内容都将突出显示语法.

帮助者的代码:

public static class HtmlHelperExtensions
{
    public static ScriptTag BeginHtmlTemplate(this HtmlHelper helper,string id)
    {
        return new ScriptTag(helper,"text/html", id);
    }
}

public class ScriptTag : IDisposable
{
    private readonly TextWriter writer;

    private readonly TagBuilder builder;

    public ScriptTag(HtmlHelper helper, string type, string id)
    {
        this.writer = helper.ViewContext.Writer;
        this.builder = new TagBuilder("script");
        this.builder.MergeAttribute("type", type);
        this.builder.MergeAttribute("id", id);
        writer.WriteLine(this.builder.ToString(TagRenderMode.StartTag));
    }

    public void Dispose()
    {
        writer.WriteLine(this.builder.ToString(TagRenderMode.EndTag));
    }
}
Run Code Online (Sandbox Code Playgroud)


Mel*_*igy 3

我认为你不能,除非你欺骗编辑器不知道你正在编写脚本标签,比如用代码(HTML 帮助程序等)编写它。我会通过暂时更改标签名称(或对其进行注释)并在完成后将其恢复来解决此问题。当然,这是一个愚蠢的解决方案。

您可以做的另一件事是不使用script标签,而是使用任何其他标签,例如div将其设置styledisplay:none。它应该以完全相同的方式工作(本文中间的示例)。