ASP.NET MVC:Razor - 如何在不向浏览器发送大量空白空间的情况下保持良好的缩进代码

Mar*_*son 5 javascript asp.net-mvc performance razor

我正在使用razor渲染javascript对象,如下面的代码片段所示

@{
    bool isFirst = true;
    foreach (var qa in Model.Form.FormItems)
    {
        if (isFirst)
        {
            isFirst = false;
        }
        else
        {
            @:,
        }

        @:new QuestionAndAnswer(
                @:@(qa.QuestionAnswerId), 
                @:@(qa.OrderNumber), 
                @:@(qa.ParentOrderNumber), 
                @:@(qa.IsHeader.ToJsonValue()),
                @:@(qa.IsMandatory.ToJsonValue()),
                @:@(qa.IsAlertable.ToJsonValue()),
                @:@(qa.IsAlarmable.ToJsonValue()),
                @:@(qa.IsKeyItem.ToJsonValue()),
                @:@(qa.IsHiddenQuestion.ToJsonValue()),
                @:new Question(
                    @:@(qa.Question.QuestionId), 
                    @:@Html.Raw(qa.Question.IdCode.ToJsonValue()),
                    @:new OverridableFormItemText(
                        @:@(qa.Question.ItemText.DefaultFormItemTextId),
                        @:@Html.Raw(qa.Question.ItemText.DefaultText.ToJsonValue()),
                        @:@Html.Raw(qa.Question.ItemText.DefaultHelpText.ToJsonValue()),
..etc...
Run Code Online (Sandbox Code Playgroud)

这使我的cshtml页面易于阅读和布局.

不幸的是,所有缩进都呈现给浏览器使页面大约需要4倍.html的示例代码段:

new QuestionAndAnswer(
    34500, 
    2, 
    1, 
    false,
    false,
    false,
    false,
    false,
    false,
    new Question(
        33955, 
        "123",
        new OverridableFormItemText(
            23879,
            "Locality",
            "",
            null,
            "",
            ""
        )
    ),
        new Answer(
            22196,
            "321",
            4,
            "MultipleChoiceSingleSelect",
Run Code Online (Sandbox Code Playgroud)

有没有办法让我保留格式良好的服务器端代码,但是向浏览器发送无格式版本(即没有缩进)以节省带宽?

Ric*_*ard 0

在 IIS 中启用动态内容压缩,空白将会存在,但压缩得很好。