保持正确的HTML语法高亮在 “text/html” templates(Keep correct

2019-07-18 12:01发布

有没有办法保留的剃刀意见里面在JavaScript的HTML模板HTML / ASP.net语法高亮和代码完成?

为了帮助高亮(双关语)的问题看这个问题的图片:

编辑:这问题涉及到Visual Studio 2010。

Answer 1:

为它创建一个帮手,就如语法在Visual Studio 2010 MVC3应用高亮与HTML模板脚本标记 。

从那里以代码,这里有什么是在那个环节的要领。

首先,添加一些代码到你的HtmlHelperExtensions

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));
    }
}

现在你可以使用它像一个Html.BeginForm()

@using (Html.BeginHtmlTemplate("person-template"))
{
    <h3>Heading</h3>
    <p>Credits: <span></span></p>
}

瞧! 语法从Visual Studio中隐藏的相关部分突出。



Answer 2:

这是“相同”的解决方案用于Web窗体(通过这里 )

(这些问题即使引用MVC /剃须刀,我来到这里寻找的WebForms)

帮手

在您的代码隐藏.aspx.cs

public string ClientTemplateBegin(string attrId, string attrType = "text/html")
{
    return string.Format(@"<script type=""{0}"" id=""{1}"">", attrType, attrId);
}

public string ClientTemplateEnd()
{
    return "</script>";
}

用法

在你.aspx文件中:

<%= ClientTemplateBegin("scriptId", "text/ractive") %>
    <strong>Some Editor</strong>

    {{#each items}}
        Hello {{name}}!  Your age is {{age}}.
    {{/each}}

    <pre>
    {{ json(items) }}
    </pre>
<%= ClientTemplateEnd() %>


文章来源: Keep correct HTML syntax highlighting in