小编Ano*_*use的帖子

jQuery复选框选中状态更改事件

当选中/取消选中复选框时,我希望事件触发客户端:

$('.checkbox').click(function() {
  if ($(this).is(':checked')) {
    // Do stuff
  }
});
Run Code Online (Sandbox Code Playgroud)

基本上我希望它发生在页面上的每个复选框上.这种方法是点击并检查状态好吗?

我认为必须有一个更清晰的jQuery方式.有人知道解决方案吗?

javascript jquery event-handling

600
推荐指数
8
解决办法
87万
查看次数

没有指定输入参数的Moq模拟方法

我在使用Moq的测试中有一些代码:

public class Invoice
{
    ...

    public bool IsInFinancialYear(FinancialYearLookup financialYearLookup)
    {
        return InvoiceDate >= financialYearLookup.StartDate && InvoiceDate <= financialYearLookup.EndDate;
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

所以在单元测试中我试图模拟这个方法并让它返回true

mockInvoice.Setup(x => x.IsInFinancialYear()).Returns(true);
Run Code Online (Sandbox Code Playgroud)

无论如何都要写这行,所以我不必指定输入IsInFinancialYear.即.所以它在代码中没有输入参数是什么,它将返回true传递给它的什么?

c# moq mocking

125
推荐指数
3
解决办法
5万
查看次数

LINQ to Entities无法识别方法'System.String Format(System.String,System.Object,System.Object)'

我有这个linq查询:

private void GetReceivedInvoiceTasks(User user, List<Task> tasks)
{
    var areaIds = user.Areas.Select(x => x.AreaId).ToArray();

    var taskList = from i in _db.Invoices
                   join a in _db.Areas on i.AreaId equals a.AreaId
                   where i.Status == InvoiceStatuses.Received && areaIds.Contains(a.AreaId)
                   select new Task {
                       LinkText = string.Format(Invoice {0} has been received from {1}, i.InvoiceNumber, i.Organisation.Name),
                       Link = Views.Edit
                   };
}
Run Code Online (Sandbox Code Playgroud)

它有问题.我正在尝试创建任务.对于每个新任务,当我将链接文本设置为像"Hello"这样的常量字符串时,它很好.但是上面我试图使用发票的属性来构建属性linktext.

我收到此错误:

base {System.SystemException} = {"LINQ to Entities无法识别方法'System.String Format(System.String,System.Object,System.Object)'方法,并且此方法无法转换为商店表达式." }

谁知道为什么?有人知道这样做的另一种方法是让它起作用吗?

linq linq-to-entities entity-framework

80
推荐指数
3
解决办法
9万
查看次数

如何确定异常是否属于特定类型

我有一块try catch代码:

try 
{
    ...
}
catch(Exception ex) 
{
    ModelState.AddModelError(
        "duplicateInvoiceNumberOrganisation", "The combination of organisation and invoice number must be unique");
}
Run Code Online (Sandbox Code Playgroud)

对于这段代码,我正在尝试将记录插入到数据库中:dba已将其设置为以便数据库检查重复项,如果存在重复项则返回错误.目前,正如您所看到的,无论发生什么错误,我都会向模型添加相同的错误.我希望它改变,所以如果这个错误是由dba设置的重复错误引起的,那么这个错误只会添加到模型中.

以下是我想要捕捉的错误.注意它在内部异常中.谁能告诉我如何专门捕捉这个?

在此输入图像描述

c# asp.net-mvc exception-handling

72
推荐指数
4
解决办法
7万
查看次数

如何在运行单元测试时获取目录

嗨,当我运行我的单元测试时,我想要获取我的项目正在运行的目录来检索文件.

假设我有一个名为MyProject的测试项目.测试我运行:

AppDomain.CurrentDomain.SetupInformation.ApplicationBase
Run Code Online (Sandbox Code Playgroud)

我接受"C:\\Source\\MyProject.Test\\bin\\Debug".

这接近我所追求的.我不想要这个bin\\Debug部分.

任何人都知道我怎么能得到"C:\\Source\\MyProject.Test\\"

c# directory unit-testing

68
推荐指数
6
解决办法
7万
查看次数

Nunit使用datetime参数化测试

有人能告诉我,nunit不可能去:

[TestCase(new DateTime(2010,7,8), true)]
public void My Test(DateTime startdate, bool expectedResult)
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

我真的想把它放在datetime那里,但它似乎不喜欢它.错误是:

属性参数必须是属性参数类型的常量表达式,typeof表达式或数组创建表达式

我读过的一些文档似乎暗示你应该能够但我找不到任何例子.

nunit unit-testing

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

Moq如何替换过时的表达方式

我在我的代码中使用Moq.我写了一个表达式:

mockInvoice.VerifySet(x => x.InvoiceAttachmentId, Times.Once());
Run Code Online (Sandbox Code Playgroud)

InvoiceAttachmentId我的发票上的财产在哪里.

它工作正常,但我得到警告:

Moq.MockExtensions.VerifySet(Moq.Mock,System.Linq.Expressions.Expression>,Moq.Times)'已过时:'由VerifySet替换(Action,Times)'

任何人都可以告诉我如何重写它以满足编译器并摆脱警告?我不确定如何替换Action.

linq moq

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

实体框架数据注释设置StringLength VarChar

我在我的模型中有这个设置:

[StringLength(250)]
public string Comment { get; set; }
Run Code Online (Sandbox Code Playgroud)

在数据库中将最大长度设置为250,这很棒.

但是,当数据库人员期望varchar(250)时,它被设置为nvarchar(250).

有人可以告诉我如何将它设置为模型中的varchar而不是nvarchar?

entity-framework

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

jQuery按类和属性获取

嗨,我有一个选择:

<select id="item_OfficeUserId" class="dropdownauditor" name="item.OfficeUserId" invoicelineid="33">
Run Code Online (Sandbox Code Playgroud)

在jQuery中,我可以通过它的类来获取它:

$(".dropdownauditor")
Run Code Online (Sandbox Code Playgroud)

有没有办法根据它的类得到它,它也属于invoicelineid ="33"?

将有不止一个class="dropdownauditor".我想获得特定的选定项目select.我用的是:

$(".dropdownauditor").change(function () {
    $(".dropdownauditor option:selected").each(function () {
    ...
    }
}
Run Code Online (Sandbox Code Playgroud)

但这是两次贯穿第二部分.即.然后,它正寻求在选择每一个selectclass="dropdownauditor"是可能仅发现只有一个invoicelineid="33"

jquery

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

如何更优雅地禁用按钮

我的一个观点是以下剃刀代码:

@if (item.PMApproved != true) {
                    <input type="button" class="btnresetinvoice button" value="Reset" data-invoiceid="@item.InvoiceId" />
                }
                else {
                    <input type="button" class="btnresetinvoice button" value="Reset" data-invoiceid="@item.InvoiceId" disabled="disabled" />
                }
Run Code Online (Sandbox Code Playgroud)

非常粗糙.基本上我想在某个条件下禁用该按钮,因为您可以从代码中解决问题.这样做更理想的方式是什么?

html razor asp.net-mvc-3

22
推荐指数
4
解决办法
3万
查看次数