如何在返回之前手动缩小JavascriptResult内容

时间:2015-05-20 01:43:29

标签: asp.net-mvc minify

我有一个控制器,它有一个特殊的方法来返回一些请求参数的js内容。 一切都很有效,我只是使用一个返回JavaScriptResult的方法,我将一个视图(具有整个js内容)呈现给一个字符串并返回它。

现在我想进一步探讨这个解决方案。我希望将js内容缩小。我发现(在NuGet上)一个CrockfordJsMinifier类(Web Markup Minifier包的一部分)似乎可以完成这项工作。

问题是:它不是一个完整的缩小器,它只是“吃掉”额外的空格,换行符等等......它不是压缩变量或函数名称等等。

因此我的问题:是否可以在字符串中使用MVC5中“捆绑和缩小”解决方案的缩小?如果是这样,我该怎么做?

以下是我的方法的一个简短示例:

    [AllowAnonymous]
    [HttpGet]
    public JavaScriptResult GetAnonymousJS(string JSName)
    {
        //"PartialToString" just renders the view on a string.
        string result = PartialToString(PartialView("PublicViewScripts/" + JSName));

        var minifier = new CrockfordJsMinifier();
        result = minifier.Minify(result, false).MinifiedContent;

        //This result is not "really" minified (is just roughly minified)
        return JavaScript(result);
    }

1 个答案:

答案 0 :(得分:1)

Microsoft Ajax Minifier怎么样?它可以根据需要压缩变量和函数名称。将Ajaxmin.dll添加到项目后,可以调用minifier:

public JavaScriptResult GetAnonymousJS(string JSName)
{
    //"PartialToString" just renders the view on a string.
    string result = PartialToString(PartialView("PublicViewScripts/" + JSName));

    var minifier = new Minifier();
    result = minifier.MinifyJavaScript(result);

    //This result is not "really" minified (is just roughly minified)
    return JavaScript(result);
}

http://ajaxmin.codeplex.com/wikipage?title=AjaxMin%20DLL