小编Hao*_*ung的帖子

用户锁定.net 4.5.1 ASP.NET MVC 5

因此,在新的.Net Framework 4.5.1中,AspNetUser表没有用于在有限次数的不成功尝试后锁定用户的列.是否存在为此目的而构建的框架或解决方案,以替换曾经存在于以前的.net框架中的功能?或者我必须建立自己的?

asp.net security asp.net-mvc asp.net-mvc-5 asp.net-identity

15
推荐指数
1
解决办法
1万
查看次数

MVC4 Beta缩小和捆绑:在浏览器中订购文件和调试

我已经开始使用MVC4 Beta中包含的捆绑和缩小功能.我遇到了一些问题:

首先,如果我使用经典<script src="Folder/js" type="text/javascript"/>捆绑,似乎我必须重命名我的文件,以确保它们以正确的顺序捆绑.

  • 假设我有三个javascript文件:"ants.js","bugs.js","insect.js"
  • ants.js取决于bugs.js
  • bugs.js取决于insect.js
  • 默认捆绑似乎按字母顺序捆绑它们.
  • 为了让它们正确捆绑,我必须将它们重命名为:"0.insects.js","1.bugs.js","2.ants.js"
  • 这真的是hackish,必须有一个更清洁的方式.

我遇到的下一个问题是调试.我喜欢在我的测试浏览器中单步执行javascript,有没有办法在DEBUG模式下关闭缩小?

编辑:要清楚,我知道我可以创建捆绑包并从C#注册它们,只是看起来真的很丑陋.

javascript bundle minify asp.net-mvc-4 asp.net-optimization

14
推荐指数
2
解决办法
4760
查看次数

ASP.NET优化 - 捆绑

我一直在尝试ASP.NET MVC 4中新的缩小和捆绑功能,只要你使用css和js文件的默认文件夹约定,它就会很好用.

/Content
/Scripts
Run Code Online (Sandbox Code Playgroud)

我通常把css和脚本放在一个名为Static的文件夹中

/Static/Css
/Static/Js
Run Code Online (Sandbox Code Playgroud)

我试着像这样注册我自己的包:

public static class BundleCollectionExtensions
{
    public static void RegisterScriptsAndCss(this BundleCollection bundles)
    {
        var bootstrapCss = new Bundle("~/Static/Css", new CssMinify());
        bootstrapCss.AddDirectory("~/Static/Css", "*.css");
        bootstrapCss.AddFile("~/Static/Css/MvcValidation.css");
        bootstrapCss.AddFile("~/Static/Css/bootstrap-responsive.min.css");
        bootstrapCss.AddFile("~/Static/Css/bootstrap.min.css");

        bundles.Add(bootstrapCss);

        var bootstrapJs = new Bundle("~/Static/Js", new JsMinify());
        bootstrapJs.AddDirectory("~/Static/Js", "*.js");
        bootstrapJs.AddFile("~/Static/Js/jquery-1.7.1.min.js");
        bootstrapJs.AddFile("~/Static/Js/jquery.validate.min.js");
        bootstrapJs.AddFile("~/Static/Js/jquery.validate.unobtrusive.min.js");
        bootstrapJs.AddFile("~/Static/Js/bootstrap.min.js");
        bootstrapJs.AddFile("~/Static/Js/gunsforhire.js");

        bundles.Add(bootstrapJs);
    }
}
Run Code Online (Sandbox Code Playgroud)

并在

Global.ascx.cs
Run Code Online (Sandbox Code Playgroud)

我这样做了:

BundleTable.Bundles.RegisterScriptsAndCss();
Run Code Online (Sandbox Code Playgroud)

生成的标记如下所示:

<link href="/Static/Css?v=D9JdmLZFFwjRwraNKfA1uei_YMoBoqLf-gFc0zHivM41" rel="stylesheet" type="text/css" />

<script src="/Static/Js?v=mbKbf5__802kj-2LS5j9Ba-wvSxBCKNMQGBgzou6iZs1" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)

但是这不起作用,请求看起来像这样:

Request URL:http://localhost:49603/Static/Js?v=mbKbf5__802kj-2LS5j9Ba-wvSxBCKNMQGBgzou6iZs1
Request Method:GET
Status Code:301 Moved Permanently (from cache)
Query String Parametersview URL encoded …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc-4 asp.net-optimization

13
推荐指数
2
解决办法
1万
查看次数

使用Visual Studio 2012 Bundling时如何正确路径相对CSS路径?

我有一个在Visual Studio 2012上运行的MVC 3/.NET 4.0应用程序.

我刚为我的所有JS和CSS文件创建了一个静态包.

它首先squawked我使用的路径没有"〜/"开头,但我需要包括在我的服务器上的另一个虚拟目录中的文件,所以我用/../得到它们.

我的包看起来像这样:

Bundle css = new Bundle("~/MyCSS", typeof(CssMinify));
css.AddFile("~/Content/css/Site.min.css");   
css.AddFile("~/../CommonWeb/css/fontawesome/css/font-awesome.css");   
BundleTable.Bundles.Add(css);
Run Code Online (Sandbox Code Playgroud)

我正在尝试包含字体 - 真棒.它找到了CSS文件就好了,但没有一个字体和图标进来.我猜它是这样的行会导致问题:

src: url('../font/fontawesome-webfont.eot');  /* From Font-Awesome */
Run Code Online (Sandbox Code Playgroud)

有关如何解决此问题的任何想法?谢谢!

编辑:更多信息:

在查看相对CSS路径的请求时,它会在我的服务器的根目录之后:

http://localhost/font/fontawesome-webfont.woff
Run Code Online (Sandbox Code Playgroud)

代替

http://localhost/CommonWeb/css/fontawesome/font/fontawesome-webfont.woff
Run Code Online (Sandbox Code Playgroud)

css c# asp.net-mvc visual-studio-2012 asp.net-optimization

13
推荐指数
1
解决办法
6619
查看次数

MVC4 Bundle缩小不适用于javascript保留字

使用最新版本的MVC4,当它包含保留字作为键名时,我无法缩小javascript!

请参阅下面的错误,其中包含应该缩小的有效javascript.

有谁知道如何修复这个短的重写javascript使用[""]表示法?

PS有问题的代码是几千行,所以它不是一个选项!

/* Minification failed. Returning unminified contents.
(3,9-15): run-time warning JS1010: Expected identifier: delete
(4,9-13): run-time warning JS1010: Expected identifier: case
(5,9-11): run-time warning JS1010: Expected identifier: if
(3,9-15): run-time error JS1137: 'delete' is a new reserved word and should not be used as an identifier: delete
(4,9-13): run-time error JS1137: 'case' is a new reserved word and should not be used as an identifier: case
(5,9-11): run-time error JS1137: 'if' is a new reserved word and …
Run Code Online (Sandbox Code Playgroud)

javascript asp.net-mvc-4 bundling-and-minification asp.net-optimization

13
推荐指数
1
解决办法
4991
查看次数

什么是MVC 5的会员提供商?

Asp.Net Mvc 4 Internet应用程序使用SimpleMembership ..当您在Visual Studio 2013 Preview上创建新的Mvc项目时,我认为Mvc 5使用新的..你对此有所了解吗?

SimpleMembership;

在此输入图像描述

我不知道MVC 5名称的会员资格;

在此输入图像描述

asp.net-mvc membership-provider visual-studio-2013 asp.net-mvc-5 asp.net-identity

13
推荐指数
1
解决办法
2万
查看次数

本地化的scriptbundle解决方案

嗨,我目前正在使用asp.net MVC 4 rc与System.Web.Optimization.由于我的网站需要根据用户偏好进行本地化,因此我正在使用jquery.globalize插件.

我非常希望继承ScriptBundle类,并根据需要确定要捆绑的文件System.Threading.Thread.CurrentThread.CurrentUICulture.这看起来像这样:

bundles.Add(new LocalizedScriptBundle("~/bundles/jqueryglobal")
                             .Include("~/Scripts/jquery.globalize/globalize.js")
                             .Include("~/Scripts/jquery.globalize/cultures/globalize.culture.{0}.js", 
                                       () => new object[] { Thread.CurrentThread.CurrentUICulture })
                    ));
Run Code Online (Sandbox Code Playgroud)

例如,如果ui文化是"en-GB",我希望拾取以下文件(当然缩小,如果可能的话,也会缓存,直到脚本文件或currentui文化发生变化).

  • "〜/脚本/ jquery.globalize/globalize.js"
  • "〜/ Scripts/jquery.globalize/globalize-en-GB.js"< - 如果此文件在服务器文件系统上不存在,则回退到globalize-en.js.

我尝试使用类似下面的内容重载Include方法,但这不会起作用,因为它不是根据请求进行评估,而是在应用程序启动时进行评估.

public class LocalizedScriptBundle : ScriptBundle
{
    public LocalizedScriptBundle(string virtualPath)
        : base(virtualPath) { 
    }

    public Bundle Include(string virtualPathMask, Func<object[]> getargs) {
        string virtualPath = string.Format(virtualPathMask, getargs());
        this.Include(virtualPath);
        return this;
    }

}
Run Code Online (Sandbox Code Playgroud)

谢谢

康斯坦丁

asp.net-mvc localization bundling-and-minification asp.net-optimization

11
推荐指数
1
解决办法
3507
查看次数

GZip system.web.optimization捆绑

我正在使用新的System.Web.Optimization并创建了一个这样的包:

bundles.Add(New ScriptBundle("~/bundles/BaseJS").Include(
                "~/Resources/Core/Javascripts/jquery-1.7.1.js",
                "~/Resources/Core/Javascripts/jquery-ui-1.8.16.js",
                "~/Resources/Core/Javascripts/jquery.validate.js",
                "~/Resources/Core/Javascripts/jquery.validate.unobtrusive.js",
                "~/Resources/Core/Javascripts/jquery.unobtrusive-ajax.js"))
Run Code Online (Sandbox Code Playgroud)

在我看来,我添加了这个

@System.Web.Optimization.Scripts.Render("~/bundles/BaseJS")
Run Code Online (Sandbox Code Playgroud)

在fiddler中,URL会遇到未来1年的过期标头和文本/ javascript的内容类型

在web.config中,我有一些gzip的代码正在处理静态JS文件,但它似乎没有在缩小的bundle上.

<staticContent>
  <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="365.00:00:00"/>
  <remove fileExtension=".js"/>
  <mimeMap fileExtension=".js" mimeType="text/javascript"/>
</staticContent>
<urlCompression doDynamicCompression="true" doStaticCompression="true" dynamicCompressionBeforeCache="true"/>
<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
  <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll"/>
  <dynamicTypes>
    <add mimeType="text/*" enabled="true"/>
    <add mimeType="text/javascript" enabled="true"/>
  </dynamicTypes>
  <staticTypes>
    <add mimeType="text/*" enabled="true"/>
    <add mimeType="text/javascript" enabled="true"/>
  </staticTypes>
</httpCompression>
Run Code Online (Sandbox Code Playgroud)

有没有办法让渲染包gzip的内容?

asp.net-mvc-3 bundling-and-minification asp.net-optimization

11
推荐指数
3
解决办法
8790
查看次数

ASP.NET MVC4捆绑CSS有些在CDN上有些本地服务器吗?

我正在研究ASP.NET MVC4 System.Web.Optimization捆绑,并想知道如何从CDN其他本地服务器提供一些CSS文件

那可能吗?

它看起来像bundles.UseCdn = true在集合级别而不是单个包的设置.

任何指导将不胜感激.

css cdn asp.net-mvc-4 bundling-and-minification asp.net-optimization

11
推荐指数
2
解决办法
7008
查看次数

为什么MVC4捆绑和缩小使我的文件更大?

我正在实现MVC4中的捆绑和缩小支持,看起来好像它使我的javascript文件比没有捆绑/缩小时更大.我正在使用nuget中提供的最新版本(预发布选项).我在RegisterBundles类中设置了以下包.

bundles.Add(new ScriptBundle("~/bundles/baseJS").Include(
                    "~/Scripts/jquery-1.7.1.js",
                    "~/Scripts/jquery.cookie.js",
                    "~/Scripts/jquery-ui-1.8.11.js",
                    "~/Scripts/bootstrap.js",
                    "~/Scripts/jquery.pjax.js",
                    "~/Scripts/kendo/2012.1.515/js/kendo.all.min.js",
                    "~/Scripts/jquery.jstree.js",
                    "~/Scripts/jquery.unobtrusive-ajax.js",
                    "~/Scripts/jquery.validate.js",
                    "~/Scripts/jquery.validate.unobtrusive.js",
                    "~/RIS.Scripts/PostJson.js"));
Run Code Online (Sandbox Code Playgroud)

我正在使用它将它加载到我的_Layout.cshtml中

@Scripts.Render("~/bundles/baseJS")
Run Code Online (Sandbox Code Playgroud)

当我在调试模式中为这些脚本添加Fiddler中收到的字节时,我得到以下内容

Name                        Size(bytes)
jquery                      98013
jquery cookie               1455
jquery ui                   124704
bootstrap                   52378
pjax                        8138
kendo.all                   219751
jstree                      55045
unobtrusive-ajax            2492
validate                    13323
validate-unobtrusive        5138
postjson                    634

Total                       581071
Run Code Online (Sandbox Code Playgroud)

当我在我的生产服务器上运行它时,我从fiddler获得了整个js包的以下内容.

Bytes Received:  999,396    
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?大多数文件在某种程度上都是缩小的,但它的大小不应该是我的有效载荷的两倍.

其他细节 - 当我从我的本地开发盒(fiddler报告大小为379kb)和服务器(小提琴手报告大小为999kb)下载js文件并将它们放入kdiff时它们是二进制相同的.当我查看Chrome的开发者工具网络选项卡时,本地服务器下载379kb,但"Parser"值为975kb.什么是解析器值.是否有一些IIS压缩设置未在我的服务器中设置但在我的本地IIS服务器上?我注意到的唯一区别是我在我的开发机器上运行的IIS Express是8.0,其中服务器是IIS 7.5.

asp.net-mvc-4 asp.net-optimization

10
推荐指数
1
解决办法
8399
查看次数