【问题标题】:Creating helper to minify JS; What am I doing wrong?创建帮助器来缩小 JS;我究竟做错了什么?
【发布时间】:2012-02-18 23:29:19
【问题描述】:
public class JavaScriptHelper
{
    public HelperResult Minify(Func<HelperResult> code)
    {
        return new HelperResult(writer => writer.Write(JavaScriptCompressor.Compress(code().ToString())));
    }
}

@section Script
{
@JavaScriptHelper.Minify(
@<script>
    (function ($, b) {
        $(function () {
            $("#upload").bind("submit", function (e) {
                e.preventDefault();
                console.log("going");
                $(this).ajaxSubmit(function (result) {
                    if (!b.ajaxFailure(result, true)) {
                        console.log(result);
                    }
                });
            });
        });
    })(jQuery, b);
</script>)
}

【问题讨论】:

  • 我希望我添加的标签是正确的。如果不是,请将它们改回来。

标签: c# javascript asp.net asp.net-mvc razor


【解决方案1】:

助手需要是静态的,Razor 将传入Func&lt;dynamic, HelperResult&gt; 而不仅仅是Func&lt;HelperResult&gt;。此外,您不想将&lt;script&gt;&lt;/script&gt; 传递给压缩器,因此将它们移到JavaScriptHelper.Minify(...) 调用之外,然后用&lt;text&gt;&lt;/text&gt; 包装内容,以便Razor 知道如何解析它。试试这个:

public class JavaScriptHelper
{
        public static HelperResult Minify(Func<dynamic, HelperResult> code)
        {
            return new HelperResult(writer => writer.Write(JavaScriptCompressor.Compress(code(null).ToString())));
        }
}

@section Script
{
    <script>
    @JavaScriptHelper.Minify(
    @<text>
    (function ($, b) {
        $(function () {
            $('#upload').bind('submit', function (e) {
                e.preventDefault();
                console.log('going');
                $(this).ajaxSubmit(function (result) {
                    if (!b.ajaxFailure(result, true)) {
                        console.log(result);
                    }
                });
            });
        });
    })(jQuery, b);

    </text>)
    </script>

}

【讨论】:

  • 谢谢,不过我最终使用了部分操作
猜你喜欢
  • 2012-11-19
  • 2013-08-06
  • 1970-01-01
  • 1970-01-01
  • 2016-07-18
  • 2018-04-10
  • 2019-12-23
  • 2014-06-15
  • 1970-01-01
相关资源
最近更新 更多