小编Mat*_*els的帖子

在创建Chrome扩展程序选项页面时如何使用Javascript?

我尝试了Google的示例:https://developer.chrome.com/extensions/options.html

我立刻遇到了按钮和正在尝试执行函数的问题,所以我改为连接了监听器.然后,它告诉我不允许选项页面执行JS.

要么我没有正确理解如何做到这一点,或Chrome的文档是完全错误的.

你如何在那里使用JS?或者:你能指出我正确教程的方向吗?

google-chrome-extension

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

使用自动属性实现单例是一个好主意吗?

我最近发现了有关自动属性的内容并且非常喜欢它们.此刻我正试图在任何地方使用它们.不仅仅是能够在任何地方使用它们,而是更多地了解它们在大多数情况下的工作情况.

现在我正在做一个单身人士并且想:"嘿,让我们在这里尝试自动属性".

public class MySingleton
{
    public static MySingleton MySingleton { get; private set; }

    private MySingleton() {}

    static MySingleton() { MySingleton = new MySingleton(); }
}
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:"实现像这样的单身人士是一个好主意吗?"

我不是在问一个单身一般是不是一个好主意.

c# singleton automatic-properties

10
推荐指数
2
解决办法
1697
查看次数

如何验证是否已调用两种方法之一?

我正在使用Moq来验证我的unittest中是否正在调用某个方法.在这种特定情况下,我想测试测试中的方法是否通过log4net记录错误.问题是,这可以通过调用log.Error或来完成log.ErrorFormat.要么没事.

我怎么能验证这个呢?我只知道如何验证它们都已被调用.

var logMock = new Mock<ILog>();

var myClass = new MyClass(logMock.Object);

myClass.MyMethod();

logMock.Verify(log => log.Error(It.IsAny<object>()));
logMock.Verify(log => log.ErrorFormat(It.IsAny<string>(), It.IsAny<object>()));
Run Code Online (Sandbox Code Playgroud)

现在我想起来了,它们都有一堆重载,我不介意是否也调用了任何重载(我开始怀疑这是一个很好的测试).

提前致谢.

编辑:我只是想到了一些令人讨厌的东西:

try
{
    logMock.Verify(log => log.Error(It.IsAny<object>()));
}
catch (Moq.MockException ex)
{
    logMock.Verify(log => log.ErrorFormat(It.IsAny<string>(), It.IsAny<object>()));
}
Run Code Online (Sandbox Code Playgroud)

也许我可以用某种扩展方法包装它...例如VerifyAny.

c# unit-testing moq

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

当两个网格位于同一页面时进行排序

在我的页面上,我有两个webGrids.当我单击一个对该列进行排序时,两个网格都在该列上排序.对仅在一个列中的列进行排序,根本不排序.

我注意到排序的工作原理是使标题成为同一页面的链接,在查询字符串中包含列和方向.这解释了两个网格都受到影响.我想知道webGrid是否有一些功能来解决我的问题,或者我应该自己修复它.

我计划"自己修复"的方法是首先通过设置htmlAttributes为表标记添加id属性.然后我将使用jQuery为每个webgrid找到这个id,并将该id包含在links参数中.然后当加载带有网格的页面时,我将根据这些参数强制设置要排序的列.

在我看来,webGrid不是设计在与另一个webGrid的页面上.但是,我觉得在我的情况下,这是需要的.我更喜欢使用一些标准方式(内置或其他人使用).

所以问题是,最好的方法是什么?如果没有最好的方法,我的方式是一个好方法(我忘记了什么)?

提前致谢.

webgrid asp.net-mvc-3

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

我如何使用System.ComponentModel.DataAnnotations.AssociationAttribute

前段时间我问过这个问题:每个System.ComponentModel.DataAnnotations属性的目的是什么?

但是,我没有收到回复的运气.这个问题有点宽泛,因为它要求提供有关每个dataannotation属性的文档.此刻,我最感兴趣的是Association属性.

我正在使用ASP.NET MVC3和Entity Framework 4,并希望注释我的POCO.我在我的POCO中使用外键(不知何故感觉不对,但似乎通常是加入的).如何使用Association属性注释我的POCO ?我把它放在哪些属性(Association属性和/或外键属性)?有什么thisKeyotherKey参数.thisKey这个POCO 是关键还是这个POCO中的外键?

最后,什么会使用这个属性?ASP.NET MVC中有什么东西吗?

提前致谢!

poco entity-framework-4 data-annotations asp.net-mvc-3

9
推荐指数
2
解决办法
5062
查看次数

处理(jQuery)Ajax调用中返回的ASP.NET MVC FileResult

目标:
我想让我的用户在我的网页上下载文件.我想要一个新窗口打开,并在那里显示或下载文件.

我的实现:
但是,首先必须在服务器端生成此文件,这可能需要一段时间.当用户单击按钮下载文件时,我会进行ajax调用并显示等待动画,直到我收到回复.处理调用的控制器操作将生成文件(PDF)并返回FileResult.现在在我的ajax回调函数的成功函数中,我得到了文件数据.

问题:我不知道我应该用这些数据做什么来把它交给用户.

解决方法:
现在我使用一种解决方法,我不会在ajax调用中返回该文件,而是将其存储在会话中.在我执行的succes功能window.open("/controller/getPDFFromSession")中将下载该文件.但是,我不想将会话用于这类事情.

提前致谢.

ajax jquery file asp.net-mvc-3

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

始终使用this-keyword作为前缀(自动)属性是一种好习惯吗?

自从我发现汽车房产以来,我试着到处使用它们.以前我会在课堂上使用的每个属性都会有一个私人成员.现在这被auto属性所取代.我通常使用普通成员字段的方式在我的类中使用该属性.问题是该属性以国会大厦开始,这使得在以这种方式使用它时看起来有点奇怪.我之前并不介意属性从国会大厦开始,因为它们总是落后于"点".现在我发现自己在内部添加了我内部使用的所有属性this.,以此来抚慰我的感觉.

我的困境是,在我总是有点反对使用内部成员的所有用法前缀this.,除非"必要"(如在setter或构造函数中).所以我有点想找到第二个意见.有没有一个标准的好方法来做到这一点?我应该停止抱怨(我倾向于成为"蚂蚁驼背"(荷兰语表达))?

之前:

class Foo
{
    private Bar bar;
    public Bar Bar { get { return bar; } }

    public Foo(Bar bar)
    {
        this.bar = bar;
    }

    public void DoStuff()
    {
        if(bar != null)
        {
            bar.DoMethod();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

后:

class Foo
{
    public Bar Bar {get; private set;}

    public Foo(Bar bar)
    {
        this.Bar = bar;
        // or
        Bar = bar;
    }

    public void DoStuff()
    {
        if(this.Bar != null)
        {
            this.Bar.DoMethod();
        }
        // or
        if(Bar != …
Run Code Online (Sandbox Code Playgroud)

c# this automatic-properties prefix

7
推荐指数
2
解决办法
400
查看次数

在我的自定义MembershipProvider中使用Ninject注入的ObjectContext的范围是什么(使用请求范围)?

我使用Entity Framework 4和ASP.NET MVC 3.我创建了一个自定义成员资格提供程序并使用Ninject将EFAccountRepository注入其中(将IAccountRepository绑定到EFAccountRepository).

此帐户存储库中注入了ObjectContext.我还在我的控制器中使用此存储库(和其他人).出于这个原因,当我将IContext绑定到我的ObjectContext时,我将范围设置为"每个请求",因此ObjectContext只存在于一个请求中并在存储库之间共享.

尝试登录时,我有时会收到以下错误:"ObjectContext实例已被处理,不能再用于需要连接的操作."

我想知道会员提供者多久被实例化一次.我通过在global.asax文件中标记存储库属性[Inject]并调用Kernel.InjectApplication_Start函数,将存储库注入到成员资格提供程序中.

如果提供者不止一次实例化,我想再次注入.但是,我没有得到空指针异常,所以我不认为是这样.

更新1

这是一些代码:

MyNinjectModule.cs

    public override void Load()
    {
        Bind<IMyContext>().To<MyObjectContext>().InRequestScope();
        // put bindings here
        Bind<IAccountRepository>().To<EFAccountRepository>
    }
Run Code Online (Sandbox Code Playgroud)

Global.asax中

    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();

        RegisterGlobalFilters(GlobalFilters.Filters);
        RegisterRoutes(RouteTable.Routes);

        var kernel = new StandardKernel(new MyNinjectModule());
        ControllerBuilder.Current.SetControllerFactory(new NinjectControllerFactory(kernel));
        kernel.Inject(Membership.Provider);
    }
Run Code Online (Sandbox Code Playgroud)

MyMembershipProvider.cs

    [Inject]
    public IAccountRepository accountRepository { get; set; }

    public override bool ValidateUser(string username, string password)
    {
        // I get the exception here.
        return (from a in accountRepository.Accounts
                where a.UserName == username …
Run Code Online (Sandbox Code Playgroud)

ninject entity-framework-4 asp.net-mvc-3

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

如何发布一个空数组(整数)(jQuery - > MVC 3)

使用jQuery我张贴的阵列int通过将阵列中的数据参数,像这样我的MVC 3应用程序:data: { myIntArray: myIntArray }.在我的控制器中,接收操作具有参数int[] myIntArray.

这在大多数情况下都很顺利,除非myIntArray是空的.在请求中,我看到以下内容myIntArray=(请注意"="后面没有空格).回到我的MVC 3控制器,这将转换为包含一个int0 的数组.

在我看来,通过发布一个空数组,我在做一些非常错误的事情.我可以通过以不同的方式处理数组为空的情况来解决这个问题.不过,我觉得这应该是可能的.

提前致谢.

额外信息:

  • 我使用jQuery 1.5.1(无法升级此项目).
  • myIntArray初始化为new Array().

arrays jquery asp.net-mvc-3

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

为什么我的dll不包含在我导出的补丁中?

我使用TortoiseHg从Mercurial存储库导出一些变更集.

这很好,除了SignalR dll没有包含在我添加这些dll的变更集的补丁中.

他们为什么不被包括在内?如果我查看机器上的变更集,我可以看到变量集中添加了dll.

如何将这些dll添加到补丁中?

我通过nuget安装了SignalR.

提前致谢.

编辑:我还注意到对该文件的另一个更改也不包含在该变更集的补丁中.

编辑:当我在记事本++中打开补丁时,我看到提到的文件:
diff -r b10c68a2d387 -r 74aa5e71d315 MyProject/_sln/packages/SignalR.Server.0.5.3/lib/net40/SignalR.dll
二进制文件MyProject/_sln /packages/SignalR.Server.0.5.3/lib/net40/SignalR.dll已更改

mercurial tortoisehg

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