小编Rob*_*ous的帖子

在WebAPI帖子中发现了多个操作 - 为什么这不起作用?

我花了一整天的时间,我现在很秃头.

控制器:

[HttpPost]
public HttpResponseMessage AddSet(SetDto set)

[HttpPost]
[ActionName("copy")]
public HttpResponseMessage CopySet([FromUri]int[] ids)
Run Code Online (Sandbox Code Playgroud)

路线顺序:

        routes.MapHttpRoute(
            name: "API Default",
            routeTemplate: "api/{controller}/{action}/{id}",
            defaults: new { id = RouteParameter.Optional });


        routes.MapHttpRoute(
           name: "Set",
           routeTemplate: "api/set/{id}",
           defaults: new { controller = "set", id = RouteParameter.Optional }
            );
Run Code Online (Sandbox Code Playgroud)

我打电话copyPOST /api/set/copt/ids,并addPOST /api/set.我究竟做错了什么?

完整错误:

"exceptionMessage":"在App.Service.Controllers.SetController\r \nSystem类型上找到了与请求匹配的多个操作:\ r \nSystem.Net.Http.HttpResponseMessage AddSet(App.Repository.Models.Dtos.SetDto). Net.Http.HttpResponseMessage

App.Service.Controllers.SetController类型上的CopySet(Int32 [])",

c# asp.net-mvc routing asp.net-web-api

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

Knockout notifySubscribers + Durandal =快速降低性能?

我使用DurandalJS构建了一个应用程序 - 虽然我不知道框架是否与此相关.在Firefox和Chrome中,如果我点击深蓝色框(文件夹),性能会迅速降低,我不知道为什么.我点击的每个新文件夹都需要更长时间才能打开 - 我可以看到它在打开大约20-30个文件夹后发生.

这些文件夹没有被缓存,应该基于单例viewModel:

define(['services/dataservice', 'durandal/plugins/router', 'durandal/app', 'services/hub', 'viewmodels/setVm', 'viewmodels/folderVm'],
    function (dataservice, router, app, hub, SetViewModel, FolderViewModel) {
    // define vm
    return vm;
}
Run Code Online (Sandbox Code Playgroud)

在FF分析器中,我看到这样的事情:

在此输入图像描述

我不确定这对于那些更熟悉分析的人是否有意义,但我不能为我的生活找出为什么会出现这种性能下降.

chrome中的内存配置文件显示最大内存消耗约为45 MB,但是我必须等待页面绘制的时间确实会逐渐变得更糟.

现场网站在这里:

www.nogginator.com

知道为什么会这样吗?

knockout.js single-page-application durandal

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

淘汰赛和.NET View模型之间的区别?

我正在启动MVC,我理解模型和ViewModels之间的区别,感谢这篇文章:

http://rachelappel.com/use-viewmodels-to-manage-data-amp-organize-code-in-asp.net-mvc-applications

然而,我向同事展示了这一点,现在我觉得这是使用knockout将视图绑定到模型的替代方法.有人可以解释一下吗?敲除绑定是否与定义具有属性的ViewModel类相同?

谢谢!

model-view-controller asp.net-mvc viewmodel asp.net-mvc-3 knockout.js

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

Durandal:确定视图当前是否处于活动状态(可能使用路由器)?

我的shell有按钮,只有当用户当前正在查看某个viewModel时才应显示这些按钮.如何确定视图当前是否从shell"处于活动状态"?

durandal

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

给定长度列表n使用C#选择k个随机元素

我发现这篇文章:

从链表中有效地选择一组随机元素

但是这意味着为了在样本中接近真正的随机性,我必须迭代所有元素,用随机数将它们抛入内存,然后排序.我这里有一大堆物品(数百万) - 有没有更有效的方法解决这个问题?

.net c# algorithm

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

使用小写键从MVC视图编码JSON?

我的MVC视图中有以下内容:

 $(document).ready(ko.applyBindings(new ProfileVm(@Html.Raw(Json.Encode(Model)))));
Run Code Online (Sandbox Code Playgroud)

这很好用,除了所有的键Model都用大写的第一个字母编码.如何从视图中调用camelCase解析器?或者有没有办法告诉Json.Encode使用小写分辨率?

asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

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

LINQ包含在一对多的.Where()不工作?

我正在尝试查询用户,包括每个用户的兴趣,但仅限于兴趣符合特定条件的情况:

  return db.Users.Include(u => u.Interests.Where(s => s.TenantId == tenantId))
Run Code Online (Sandbox Code Playgroud)

但是我收到一个错误:

Include路径表达式必须引用在类型上定义的导航属性.使用虚线路径作为参考导航属性,使用Select运算符作为集合导航属性.

我玩的想法是把外面的东西推到外面,但却无法让它发挥作用.

c# linq asp.net entity-framework

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

OfType<> 与“is”查询的性能

在TPH继承中,这有什么区别:

context.Firms.OfType<RedFirm>()
Run Code Online (Sandbox Code Playgroud)

和这个:

context.Firms.Where(item => item is RedFirm);
Run Code Online (Sandbox Code Playgroud)

在性能方面?

c# linq performance linq-to-entities entity-framework

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

Html.Editor对于MVC4中的子对象?

我在视图中有以下代码:

@foreach (var parent in Model.Parents)
        {      
            @foreach (var child in parent.Children)
                { 

                 @Html.TextAreaFor(c => child.name)

                }                   
        }
Run Code Online (Sandbox Code Playgroud)

表单中的其他textareas保存正常,但在提交表单时,我的控制器中的POST方法获取一个带有null父字段的viewModel.知道为什么吗?

asp.net-mvc razor asp.net-mvc-3 asp.net-mvc-4

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

在HashSet <string> Performance中搜索字符串

我有一个HashSet<string>约5万名会员.我有另一个对象列表,我一个接一个地迭代,以确定对象的电子邮件是否存在.如果是,我需要对该对象执行一些操作.

var emailList = db.Emails.Select(s => s.EmailAddress.ToLower()).ToList();
var emailHash = new HashSet<string>(emailList);
var objects = db.Objects.ToList();
// everything is fine up to this point
foreach (var object in objects) {
   if (!emailHash.Any(s => s.Equals(object.Email))) { // This takes ~0.3s
      Console.WriteLine("Email: {0}", object.Email);     
   }
}
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能加快评估字符串列表中是否存在一个字符串?

.net c# c#-4.0

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