小编Sim*_*max的帖子

使用ASP.Net HttpClient格式化为form-url编码的复杂类型

我需要HTTP POST一个复杂的类型到Web服务(我无法控制).我相信Web服务是使用旧版本的ASP.NET MVC构建的.它模型绑定格式为的有效负载form-url-encoded.

如果我在它上面开火,那就完美了.如您所见,我手动创建了一组键/值对.

    var values = new List<KeyValuePair<string, string>>
    {
        new KeyValuePair<string, string>("Username", "some-username"),
        new KeyValuePair<string, string>("Password", "some-password"),
        new KeyValuePair<string, string>("Product", "some-product")
    };

    var content = new FormUrlEncodedContent(values);

    var response = new HttpClient().PostAsync(url, content).Result;
Run Code Online (Sandbox Code Playgroud)

但我不想这样做,我只想发送复杂的类型,如果可以的话.

var content = new ComplexType("some-username", "some-password", "some-product");

var response = new HttpClient().PostAsync(url, content).Result;
Run Code Online (Sandbox Code Playgroud)

我相信曾经有一个HttpRequestMessage<T>但是已经被抛弃了

HttpClient.PostAsJsonAsync<T>(T value) sends “application/json” HttpClient.PostAsXmlAsync<T>(T value) sends “application/xml”

但是我不想发送Json或者XML我想发送form-url-ecncoded而没有将复杂类型转换为键/值对集合的麻烦.

基本上我也想知道 Jaans提出的这个问题的答案 (他是对第二个答案的第二个评论).

任何人都可以提出建议.

c# asp.net-web-api

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

Mongoose文档架构和验证

我有这样的架构:

class Schemas

  constructor: ->
    @mongoose = require 'mongoose'
    @schema = @mongoose.Schema

    @EmployeeSchema = new @schema
      'firstname': { type: String, required: true }, 
      'lastname': { type: String, required: true }, 
      'email': { type: String, required: true, index: { unique: true }, validate: /\b[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}\b/ },
      'departmentId': { type: @schema.ObjectId, required: true }
      'enddate': String,
      'active': { type: Boolean, default: true } 

    @EmployeeSchemaModel = @mongoose.model 'employees', @EmployeeSchema

    @DepartmentSchema = new @schema
      'name': { type: String, required: true, index: { unique: true } …
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb

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

我应该如何测试从控制器发送电子邮件?

我开始进行单元测试并尝试做一些TDD.我已经阅读了很多关于这个主题的内容,并写了一些测试.我只是想知道以下是否是正确的方法.

我想在我的网站上添加通常的"联系我们"设施.你知道的事情,用户用他们的电子邮件地址填写表格,输入一条简短的信息,然后按一个按钮发回表格.

模型绑定器执行它们的操作,我的操作方法接受发布的数据作为模型.然后,操作方法将解析模型并使用smtp向网站管理员发送电子邮件,让他/她填写有人在其网站上填写联系表单.

现在问题....为了测试这个,我是否正确创建一个接口IMessageService,它有一个方法Send(emailAddress,message)来接受电子邮件地址和消息体.在具体类中实现接口,让该类处理smtp的东西并实际发送邮件.

如果我将接口作为参数添加到我的控制器构造函数中,那么我可以使用DI和IoC将具体类注入控制器.但是在进行单元测试时,我可以创建我的IMessageService的伪造或模拟版本并对其进行断言.

我问的原因是我看过其他人为SmtpClient生成接口然后嘲笑它的例子.真的有必要走那么远,还是我不理解这些东西?

email asp.net-mvc unit-testing dependency-injection

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

Karma 覆盖率始终显示 100%

我的 karma.conf.js 文件如下所示:

// Karma configuration
// Generated on Tue Jun 11 2013 14:14:12 GMT+0100 (GMT Daylight Time)


// base path, that will be used to resolve files and exclude
basePath = '';


// list of files / patterns to load in the browser
files = [
    JASMINE,
    JASMINE_ADAPTER,
    '../Scripts/angular/angular.js',
    '../Scripts/angular/restangular/underscore-min.js',
    '../Scripts/angular/restangular/restangular-min.js',
    '../Scripts/angular/angular-*.js',
    '../Scripts/angular/angular-test/angular-*.js',
    '../Scripts/angular/angular-ui/*.js',
    '../Scripts/angular/angular-strap/*.js',
    '../Scripts/angular/angular-http-auth/*.js',
    '../uifw/scripts/ui-framework-angular.js',
    '../app/app.js',
    '../app/**/*.js',
    'unit/**/*.js'
];


// list of files to exclude
exclude = [
  '../Scripts/angular/angular-test/angular-scenario.js'
];

preprocessors = {
  '**/../app/**/*.js': 'coverage'
};



coverageReporter …
Run Code Online (Sandbox Code Playgroud)

code-coverage angularjs karma-runner

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

如何使用每个命令的jquery模板迭代一个对象数组

在Javascript中,我有一个User包含对象数组的department对象,如下所示:

user = 
{
   departments: [
        {id: 1, name: 'Department 1'},
        {id: 2, name: 'Department 2'},
        {id: 3, name: 'Department 3'}
   ]
}
Run Code Online (Sandbox Code Playgroud)

使用jquery模板(版本1.4.2)我想渲染一个<select>标签,如下所示:

<select name="departmentId" id="department">
    {{each departments}}
        <option value="{{= id }}">{{= name }}</option>
    {{/each}}   
</select>
Run Code Online (Sandbox Code Playgroud)

这不会在选项元素中生成任何值.如何使用模板访问每个部门对象的id和name属性.

jquery-templates

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

ASP.Net Web Api Url.Link在单元测试中没有返回UriString

我有以下测试:

[Test]
public void Add_New_Group_Should_Return_StatusCode_Created_And_A_Header_Location_To_The_New_Group()
{
    var newGroup = new GroupData { ID = 1, UserID = 1, Name = "Group 1", Description = "Description 1" };

    var fakeGroupDAL = A.Fake<IGroupDAL>();
    var contactGroupsController = new ContactGroupsController(fakeGroupDAL);
    SetupControllerForTests(contactGroupsController, HttpMethod.Post);

    var response = contactGroupsController.AddGroup(new ContactGroupApiRequest(), newGroup);

    Assert.IsTrue(response.StatusCode == HttpStatusCode.Created, "Should have returned HttpStatusCode.Created");

}
Run Code Online (Sandbox Code Playgroud)

其中调用以下配置方法:

private static void SetupControllerForTests(ApiController controller, HttpMethod httpMethod)
{
    var config = new HttpConfiguration();
    var request = new HttpRequestMessage(httpMethod, "http://localhost/contactgroups");

    var route = config.Routes.MapHttpRoute("ContactGroupsApi", "{controller}/{action}/{request}", new { request …
Run Code Online (Sandbox Code Playgroud)

asp.net-web-api

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

无法从使用中推断出类型参数

我对仿制药很新,所以我想知道是否有人可以解释我遇到的以下问题.在ASP.NET MVC应用程序中的几乎所有控制器中,我都需要返回一个已过滤的列表(在用户指定某些过滤条件的情况下填充JqGrid).每个控制器列表方法将返回一个不同的IQueryable列表,所以我开始创建一个通用方法来处理它.

当我创建我的方法时,我在特定的控制器中定义它.一切都编译好了,我得到了我期望的结果.因为我想从我的所有控制器调用这个方法,我假设我可以简单地创建另一个静态类,将方法放在那里,然后从我的所有控制器调用该方法.但是,如果我尝试将方法移动到调用它的控制器以外的任何其他位置,编译器会抱怨该方法的最后一行,并出现以下错误:

System.Linq.Queryable.Where<TSource>(System.Linq.IQueryable<TSource>, System.Linq.Expressions.Expression<System.Func<TSource,bool>>) 无法从用法中推断出方法的类型参数.尝试显式指定类型参数.

public static IQueryable<T> FilteredList<T>(IQueryable<T> list, string filters)
{
     var qb = new QueryBuilder<T>();
     var whereClause = qb.BuildWhereClause(filters);
     return list.Where(whereClause);
}
Run Code Online (Sandbox Code Playgroud)

我试着list<T>.Where(whereClause)list.Where<T>(whereClause)和几乎所有其他的组合,我要去哪里错了,谁能给我解释一下.

c# generics

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

Backbone.Marionette model.destroy问题

我有非常简单的骨干模型和集合.我有一个相应的backbone.marionette.CollectionView和backbone.marionette.ItemView,他们住在backbone.marionette.region.

ItemView模板包含"删除"按钮.remove按钮的click事件发出model.destroy().向后端发出HTTP DELETE,但它似乎发出两次,因为第二次失败,该项目不会从集合中删除.

其他一切工作正常,只发出两次HTTP DELETE.知道为什么吗?

我正在使用Backbone.Marionette版本v0.4.5

# Model:
class User extends Backbone.Model
  idAttribute: "_id"

# Collection
class Users extends Backbone.Collection
  model: app.User 
  url: "/someUrl/Users"

# CollectionView 
class UserListView extends Backbone.Marionette.CollectionView
  tagName: "ul",
  itemView: app.UserItemView

# ItemView
class UserItemView extends Backbone.Marionette.ItemView
  template: "#item"
  tagName: "li"

  events:
    "click .edit": "edit"
    "click .remove": "remove"

  remove: ->
    @model.destroy()

  edit: (e) ->
    alert JSON.stringify @model
Run Code Online (Sandbox Code Playgroud)

backbone.js marionette

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

PredicateBuilder和或或

在我为谓词构建器看到的所有示例中,PredicateBuilder.True如果要构建"和"表达式条件以及PredicateBuilder.False构建"或"表达式条件,它将显示一个起始表达式.

我的问题是,这种情况总是如此,如果是这样的话,为什么不能简单地推断出这一点.我怀疑必定会有一些情况,你正在构建一个"和"表达式,并希望从错误开始.与"或"相反

任何人都可以向我解释这个吗?

predicatebuilder linqkit

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

将Backbone.ModelBinding与Backbone.Validation一起使用

当使用T. Hedersen的backbone.validation插件(https://github.com/thedersen/backbone.validation)与Derick Bailey的backbone.modelbinding插件(https://github.com/derickbailey/)时,我遇到了一个问题.backbone.modelbinding).

我已经整理了一个jsFiddle示例(http://jsfiddle.net/simax/bEqnZ/)来试图证明这个问题.

在示例中,如果删除firstname或lastname的内容,则isValid(true)调用仍然返回true,这是不正确的,因为firstname和lastname都是必填字段.您还会注意到DisplayForm未正确更新.似乎模型属性没有正确"取消设置".

但是,如果删除对Backbone.Validation.this(bind)的调用,则会正确更新模型属性和DisplayForm.

谁知道问题是什么?

backbone.js

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