小编Tom*_*all的帖子

MVC4 StyleBundle无法解析图像

我的问题与此类似:

ASP.NET MVC 4缩小和背景图像

除非我想坚持使用MVC自己的捆绑,如果可以的话.我正在脑力崩溃试图弄清楚用于指定样式包的正确模式是什么,例如jQuery UI工作的独立css和图像集.

我有一个典型的MVC站点结构,/Content/css/其中包含我的基本CSS,如styles.css.在该css文件夹中,我还有子文件夹,例如/jquery-ui包含其CSS文件和/images文件夹的子文件夹.jQuery UI CSS中的图像路径是相对于该文件夹的,我不想搞砸它们.

据我所知,当我指定一个StyleBundle我需要指定一个不匹配真实内容路径的虚拟路径时,因为(假设我忽略了到内容的路由),IIS将尝试将该路径解析为物理文件.所以我指的是:

bundles.Add(new StyleBundle("~/Content/styles/jquery-ui")
       .Include("~/Content/css/jquery-ui/*.css"));
Run Code Online (Sandbox Code Playgroud)

渲染使用:

@Styles.Render("~/Content/styles/jquery-ui")
Run Code Online (Sandbox Code Playgroud)

我可以看到要求:

http://localhost/MySite/Content/styles/jquery-ui?v=nL_6HPFtzoqrts9nwrtjq0VQFYnhMjY5EopXsK8cxmg1
Run Code Online (Sandbox Code Playgroud)

这将返回正确的,缩小的CSS响应.但随后浏览器发送相对链接图像的请求,如下所示:

http://localhost/MySite/Content/styles/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
Run Code Online (Sandbox Code Playgroud)

这是一个404.

我知道我的URL的最后一部分jquery-ui是一个无扩展名的URL,我的包的处理程序,所以我可以看到为什么相对的图像请求是简单的/styles/images/.

所以我的问题是处理这种情况的正确方法什么

css bundle jquery-ui asp.net-mvc-4 asp.net-optimization

288
推荐指数
9
解决办法
10万
查看次数

在Inkscape中展平SVG矩阵变换

我有一个最初在Inkscape中创建的免费剪贴画SVG文件,我正在修改它以用于Windows 8 JavaScript游戏.它包含许多路径实例,并在周围的组上应用矩阵变换,如下所示:

<g transform="matrix(0.443,0.896,-0.896,0.443,589.739,-373.223)">
    <path d="M486,313s27-9,43-29l26,4,1,23-22,5s-25-6-48-3z" />
</g>
Run Code Online (Sandbox Code Playgroud)

我希望通过将它预先应用到Inkscape中的路径来展平该转换,以减少动画期间的浏览器工作.然而,当我将6个矩阵值插入Inkscape中的ABCDEF参数并应用它时,它为路径提供了完全不同的旋转和缩放到IE10引擎的功能.

我已经多次检查过我正确映射了6个值.我究竟做错了什么?

编辑:好的,这里是IE10和Inkscape的截图之前和之后.对于IE10的情况,SVG直接驻留在一个空的HTML文档的主体内(Firefox中的渲染完全相同).在Inkscape中,我只是打开了"之前"SVG文件,该文件只包含路径元素,选择了路径,并将6个矩阵变换值插入到Object> Transform> Matrix中.我对矩阵知之甚少,我只是希望能够以与浏览器相同的方式预先应用这些转换,并且理想地理解为什么Inkscape存在差异.谢谢.

仅限IE10路径 IE10路径与变换 仅限Inkscape路径 Inkscape路径与变换

svg transform matrix inkscape

38
推荐指数
4
解决办法
2万
查看次数

Javascript Revealing Module模式 - 在函数返回后公开初始化变量

我一直在使用Javascript Revealing Module模式,我喜欢它在公共接口和内部之间的明确分离.但是我一直遇到一种情况,这让我想知道我的整体使用模式是否正确,或者我是否应该使用该模式的某些变体.

问题是,当某些内容传递到模块的init函数并私有存储以供内部使用时,还需要在Knockout绑定表达式或其他模块中公开公开.模块的return语句立即执行,稍后调用init函数,通常会传递一些动态参数,如Ajax URL或Razor视图中脚本块中呈现的原始JSON.因为模块的return语句只返回私有变量的副本而不是引用,所以我在init函数中设置的私有变量不能改变已经返回的内容.

var productsModule = function() {

var urls;

var init = function(ajaxUrls) {
    urls = ajaxUrls;
};

return {
    init: init,
    urls: urls,
    getUrls: function() { return urls; }
};

}();

var customersModule = function() {

var doSomethingWithProductsModule = function() {
    alert(productsModule.urls); // undefined
    alert(productsModule.getUrls()); // object   
} ;       

return {
    doSomethingWithProductsModule: doSomethingWithProductsModule
};

}();

var urls = {
getProduct: '/Product/'
};

productsModule.init(urls);

customersModule.doSomethingWithProductsModule();
Run Code Online (Sandbox Code Playgroud)

我的解决方法是在函数中包装诸如"urls"之类的对象,然后通过productsModule.getUrls()访问它们.然而,这变得非常混乱,特别是如果变量是一个Knockout observable,它本身就是一个函数,因此为了评估它我需要使用像productModule.getMyObservable()()这样的双括号.

是否有更好的方法来使用至少接近显示模块模式的东西来获取最新的内部值?

javascript revealing-module-pattern knockout.js

6
推荐指数
1
解决办法
2427
查看次数

从OWIN CookieAuthentication cookie填充SignalR HubCallerContext.User

我有一个使用OWIN CookieAuthentication的MVC5 Web应用程序.当用户成功登录Web应用程序时,将连接到在控制台应用程序中运行的SignalR集线器,该控制台应用程序也配置了OWIN CookieAuthentication.

在SignalR Startup中,我指定了GlobalHost.HubPipeline.RequireAuthentication(),因为我想通过Web应用程序发送的ClaimsPrincipal获取HubCallerContext.User属性.检查可用的cookie,我可以看到auth cookie已成功接收,但我无法弄清楚如何设置OWIN配置以便从中设置readonly主体.

我已经看过相关的帖子建议,比如下面的变化:

        var cookieAuthenticationOptions = new CookieAuthenticationOptions
        {
            AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
            AuthenticationMode = AuthenticationMode.Active,
            Provider = new CookieAuthenticationProvider
            {
                OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
                    TimeSpan.FromSeconds(30),
                    (manager, user) => manager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie))
            }
        };

        app.UseCookieAuthentication(cookieAuthenticationOptions);
Run Code Online (Sandbox Code Playgroud)

但是我不能让这些产生任何影响,并且无论如何它似乎涉及很多外围的Identity框架相关的类要设置(现在我已经从MVC5项目模板中移植而只是为了测试).我只想用加密到故障单中的声明来保护User属性,然后在我的SignalR系统中查找已识别的用户,但我觉得合适.我该怎么做?

编辑:作为一种解决方法,我在Web应用程序中登录用户时创建了一个单独的"服务器cookie".我二进制序列化ClaimsIdentity,用AES加密,base 64编码并将其放入cookie中.然后在我的Hub类中,我有一个按需的User属性,它读取该cookie并解压缩它.不是理想的解决方案!

authentication signalr owin asp.net-mvc-5 asp.net-identity

5
推荐指数
0
解决办法
912
查看次数

配置为以编程方式执行更新的ClickOnce应用程序有时仍会显示ClickOnce Update Available提示

我们使用ClickOnce部署了一个WPF应用程序,它在应用程序启动时以编程方式检查并执行更新.除了用户选择"否"以"我们想要更新吗?"的情况外,这通常表现得很好.提示.在这种情况下,下次用户启动应用程序时(一致地),ClickOnce框架的"可用更新"对话框将启动,并提供更新或跳过选项.这不会引起技术问题,但会让用户感到困惑,因为它可能会看到两个完全不同风格的对话框.(如果用户选择Skip到ClickOnce对话框,则应用程序将启动并呈现我们自己的"可用更新"对话框).在这种情况下,为什么ClickOnce框架对话框会显示?谢谢.

wpf clickonce dialog

3
推荐指数
1
解决办法
1551
查看次数

Knockout.js唯一ID,用于单选按钮组中的"for"标签属性

我已经实现了非常狡猾的回答的一个变种在这里生成的唯一ID,用于输入和我的淘汰赛标记相应的标签.我的最终目标是可点击的标签,而不是唯一的ID本身 - 我以前在每个标签上使用点击绑定,导航DOM以选择其输入,但这似乎是破碎和低效的.

但是,链接的解决方案不适用于单选按钮组,其中组中的每个无线电都绑定到相同的可观察对象.在我的情况下,我的无线电组是真/假(绑定回布尔可观察)或表示枚举,在这种情况下,observable保持一个整数值.所提供的解决方案导致组中的所有无线电(以及它们对应的属性标签)获得相同的ID.

为了使事情变得更复杂,这些单选按钮组本身会出现多次.例如,可能有10个模板化的div,每个div都有一组3个单选按钮:红色,绿色,蓝色 - 每个收音机都有一个标签,我想在点击时激活相应的收音机.

我一直在努力修改这个解决方案以适应,但我的大脑现在已经锁定了.欢迎任何想法!

html javascript dom knockout.js

3
推荐指数
1
解决办法
5978
查看次数

PhysicsJS - 如何创建一个在敲击时绕固定点旋转的物体?

我一直在试验优秀的PhysicsJS库,特别是约束和碰撞.我想要实现的是一个可以绕固定旋转点旋转的多边形.作为一个现实世界的例子,想象一个宽大的架子钉在墙上,只有一个长钉穿过正中心,这样当它偏离中心从上面落下时,它可以旋转半圈或一圈.

这是一个示例小提琴:http://jsfiddle.net/2HRGW/41/

和代码:

Physics(function (world) {
var renderer = Physics.renderer('canvas', {
    el: 'viewport',
    width: 500,
    height: 400
});
world.add(renderer);

var nail = Physics.body('circle', {
    x: 250,
    y: 200,
    radius: 5,
    mass: 1,
    fixed: true
});
world.add(nail);

var shelf = Physics.body('convex-polygon', {
    x: 250,
    y: 200,
    vertices: [{
        x: -100,
        y: -10
    }, {
        x: 100,
        y: -10
    }, {
        x: 100,
        y: 10
    }, {
        x: -100,
        y: 10
    }],
    mass: 100,
    restitution: 0.5
});
world.add(shelf);

var …
Run Code Online (Sandbox Code Playgroud)

javascript constraints physicsjs

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

在Knockout.js模板中保留Razor语法高亮显示

我的Web应用程序是带有Razor和Knockout.js的ASP.NET MVC4.视图模型层次结构变得相当深刻和复杂,我更倾向于使用嵌套的Knockout模板用于相应的视图(每个模板的子模板都有for/each),而不是单片的HTML.

令我烦恼的是,当使用Knockout模板定义时<script type="text/html" id="scary-template">,内容的语法在Visual Studio中丢失其Razor语法高亮,因为它被解释为脚本.模板足够复杂,文本也不是纯黑色.

我考虑过的一些方法是使用Html.Raw输出开始和结束脚本标签,或HtmlHelper扩展,如Html.BeginKOTemplate(id).

我很想知道其他ASP.NET MVC人员如何处理这个问题.我是迂腐吗?无论如何,下一个需要选择此解决方案的开发人员可能会感谢我的关心.

javascript asp.net-mvc visual-studio razor knockout.js

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