小编End*_*ono的帖子

HttpResponseMessage包含所需响应的单元测试

我正在编写Web API控制器,现在我有以下代码:

public class PicklistsController : ApiController
{
    private readonly IPicklistRepository _repository;

    public PicklistsController(IPicklistRepository repository)
    {
        _repository = repository;
    }

    public HttpResponseMessage GetPicklistValues(string entityName, string fieldName)
    {
        if(_repository.Exists(entityName, fieldName))
            return Request.CreateResponse(HttpStatusCode.Accepted, _repository.Get(entityName, fieldName));

        return new HttpResponseMessage(HttpStatusCode.NotFound);
    }

}
Run Code Online (Sandbox Code Playgroud)

我正在尝试测试此方法,我真正想要做的就是验证当存储库找到这些值组合时,HttpResponseMessage包含POCO PicklistItem中的值.作为这个框架的新手,我不太了解HttpResponseMessage的内部工作原理,我在这个网站上发现并通过一般的谷歌搜索告诉我在其内容上使用各种ReadAsync方法,但我真的不想要如果我可以避免它,请使用async.我真的只想验证当我返回时,我填充到我正在返回的对象中的东西是在对象中.这是我到目前为止的单元测试(使用JustMock设置存储库,Target是CUT):

public void Returns_Picklist_Item_JSON_When_Results_Exist()
{
    Repository.Arrange(repo => repo.Exists(EntityName, FieldName)).Returns(true);

    const int value = 2;
    const string label = "asdf";
    var mynewPicklistItem = new PicklistItem() { Label = label, Value = value };
    Repository.Arrange(repo => repo.Get(EntityName, FieldName)).Returns(Enumerable.Repeat<PicklistItem>(mynewPicklistItem, 1));

    var response = Target.GetPicklistValues(EntityName, …
Run Code Online (Sandbox Code Playgroud)

c# unit-testing asp.net-web-api

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

Elmah和ASP.NET MVC 3

在ASP.NET MVC 3应用程序上设置elmah所需的步骤是什么?

  1. 努埃特埃尔玛
  2. 定制elmah(存储等)
  3. 处理HandleError

这就是全部?nuget之后仍然需要第3步吗?

elmah asp.net-mvc-3

15
推荐指数
3
解决办法
6349
查看次数

按发生次数计数和排序

我有这样一个数组:

var items = [
  {name: 'popcorn', category: 'snacks'},
  {name: 'nachos', category: 'snacks'},
  ...
  {name: 'coke', category: 'drinks'}
];
Run Code Online (Sandbox Code Playgroud)

我想得到一个按照项目数量排序的类别列表(大多数项目排在第一位):

['snacks', 'drinks']
Run Code Online (Sandbox Code Playgroud)

我是这样做的:

var categories = _.chain(items)
  .countBy(function (i) { return i.category })
  .pairs()
  .sortBy(function (c) { return -c[1] })
  .map(function (c) { return c[0] })
  .value();
Run Code Online (Sandbox Code Playgroud)

所以结果countBy是一个对象,我必须使用pairs它将它转换为一个数组数组,以便对它进行排序.

我想知道是否有更简单的方法来做到这一点?内置功能?

underscore.js

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

根据ASP.NET MVC 3中的控制器和操作名称授予当前用户权限

我需要在ASP.NET MVC 3中创建自定义授权.在应用程序内部,授权在5个表中定义:用户,组,用户组,权限,grouprights.用户可以属于多个组,每个权限也可以分配给多个组.为每个控制器操作分配一个RightID.

内置授权无法容纳此设置,因此我尝试创建自定义的AuthorizeAttribute.覆盖AuthorizeCore时,我意识到我无法访问控制器名称和操作名称.

我可以以某种方式要求路由器解析AuthorizeCore中的Request.RawUrl以获取控制器和操作名称吗?或者还有另一种方法可以做我想要的吗?

asp.net-mvc authorization asp.net-mvc-3

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

使用MVC 3在浏览器选项卡中打开PDF结果

我正在使用ASP.NET MVC 3.我有一个控制器动作,返回一个PDF文件,如下所示:

Public Class ReportController
    ...
    Function Generate(id As Integer) As ActionResult
        ...
        Return File(output, "application/pdf", "something.pdf")
        ' "output" is a memory stream
    End Function
Run Code Online (Sandbox Code Playgroud)

代码有效,但Firefox不会在选项卡中显示结果,结果可以使用Adobe Reader下载或打开.

我知道Firefox可以在选项卡中显示PDF,因为我可以谷歌一些PDF,点击链接,PDF将在选项卡中打开.

如何设置操作以便PDF将在选项卡中打开?

pdf asp.net-mvc-3

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

在指令内创建私有函数

是否可以在指令中创建私有函数?我需要在指令中执行一个相当复杂的过程来填充指令的模板.

像这样的东西(HTML):

<textarea the-result="data">
</textarea>
Run Code Online (Sandbox Code Playgroud)

使用Javascript:

angular
.module("MyModule")
.directive("theResult", [function () {
    return {
        scope: {
            theResult: "="
            // calculatestuff = function(d){ // ... } can't put it here (error)
        },
        template: ' ... '
            + '{{calculatestuff(theResult.someproperties)}}'
            + ' ... '
    }
}])
Run Code Online (Sandbox Code Playgroud)

我在哪里可以放calculatestuff

angularjs

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

使用OleDb在Dapper中传递查询参数

此查询产生错误No value given for one or more required parameters:

using (var conn = new OleDbConnection("Provider=..."))
{
  conn.Open();
  var result = conn.Query(
    "select code, name from mytable where id = ? order by name",
    new { id = 1 });
}
Run Code Online (Sandbox Code Playgroud)

如果我将查询字符串更改为:... where id = @id ...,我将收到错误:Must declare the scalar variable "@id".

如何构造查询字符串以及如何传递参数?

oledb dapper

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

如何在角度为2+的元素上调用scrollIntoView

我想在组件中的HTML元素上调用scrollIntoView.

在angular.js 1中我可以在控制器中做这样的事情:

var element = $window.document.getElementById(id);
element.scrollIntoView({ behavior: "smooth", block: "start" });
Run Code Online (Sandbox Code Playgroud)

如何在角度2+中做同样的事情?

angular

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

如何告诉 VS Code 格式文档在一定长度后换行?

在 Visual Studio Code 中,当您按下ALT SHIFT F格式化 HTML 文档时,VS Code 会将太长的一行包装成多行。

我认为 VS Code 在换行之前让行长得太长。VS Code 中是否有设置告诉它在特定行长后换行?

这个问题不是硬包装问题的重复。这是关于格式化文档过程中的包装。

visual-studio-code

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

如何使用Rx.js(javascript的反应式扩展)检测konami代码?

我想开始学习Rx.js,我正在寻找一个很好的例子来开始滚动球.如何使用Rx.js 检测konami代码

我想检测一系列按键事件(向上向上,向左下左右BA)并显示图像(如果发生这种情况).

reactive-extensions-js

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