小编daf*_*key的帖子

SignalR:使用驼峰盒

我想知道是否有办法配置SignalR,以便集线器中的客户端功能使用驼峰大小写返回对象.

谢谢.

serialization json.net deserialization signalr

25
推荐指数
2
解决办法
9648
查看次数

Nodejs:错误:找不到模块'html'

即时通讯使用nodejs和我试图只提供html文件(没有玉,ejs ...引擎).

继承我的入口点(index.js)代码:

var express = require('express');
var bodyParser = require('body-parser');

var app = express();

app.set('port', (process.env.PORT || 5000));
app.use(express.static(__dirname + '/public'));

app.use(bodyParser.urlencoded({
  extended: true
}));
app.use(bodyParser.json());

app.use(express.static(__dirname + '/public'));

app.get('*', function(req, res){
    res.render('index.html');
});

app.listen(app.get('port'), function() {
});
Run Code Online (Sandbox Code Playgroud)

当我点击网址"localhost:5000 /"时,这样做很好,但是当我尝试类似"localhost:5000/what"的内容时,我收到以下消息: 错误:无法找到模块'html'

我是nodejs的新手,但我希望所有路由都能呈现index.html文件.我怎样才能做到这一点 ???

谢谢.

javascript node.js express

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

从Api控制器中生成绝对URL以执行操作

我正在使用asp.net mvc4,我在'controller1'这个动作:

    [HttpGet]
    public async Task<string> Action1()
    {
        try
        {
            HttpClient cl = new HttpClient();
            string uri = "controller2/action2";
            HttpResponseMessage response = await cl.GetAsync(uri);
            response.EnsureSuccessStatusCode();
            return response.ToString();
        }
        catch
        {
            return null;
        }
    }
Run Code Online (Sandbox Code Playgroud)

当我设置uri到"http://localhost:1733/controller2/action2"动作工作正常,但从未与uri设置为"controller2/action2"或"/ controller2/action2"或"〜/ controller2/action2".

如何在不硬编码uri的情况下编写此操作?

谢谢.

asp.net-mvc

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

knockout js:foreach绑定添加一个静态元素

我想为一个可观察的列表做一些分页.我使用bootstrap作为样式,在他们的文档中,他们使用未排序的列表来显示页面的链接.

假设我们在视图中有以下代码:

<ul class="pagination" data-bind="foreach : ko.utils.range(1, 10)">
    <li><a href="#" data-bind="text : $data"></a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

此代码将显示以下内容:

<ul class="pagination">
    <li><a href="#">1</a></li>
    <li><a href="#">2</a></li>
    ...
    <li><a href="#">10</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

问题:如何使用knockout我可以<li>在未排序列表的顶部和底部添加静态链接到上一页和下一页?这必须是显示的html:

<ul class="pagination">
    <li><a href="#">previous</a></li>
    <li><a href="#">1</a></li>
    <li><a href="#">2</a></li>
    ...
    <li><a href="#">10</a></li>
    <li><a href="#">next</a></li>
</ul> 
Run Code Online (Sandbox Code Playgroud)

谢谢.

knockout.js

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

Breeze和EdmBuilder for OData v4

由于本文档,我能够在服务器端使用WebApiOdata和EntityFramework以及客户端的Breeze创建OData(v3)服务.

现在我想对OData规范的第4版做同样的事情.但有一个问题.EdmBuilderBreeze提供的类依赖于与版本3相关的'Microsoft.Data.Edm'.

EdmBuilder这两行中阻止了项目的建立:

using Microsoft.Data.Edm.Csdl;
using Microsoft.Data.Edm.Validation;
Run Code Online (Sandbox Code Playgroud)

这是正常的,因为我的项目引用了'Microsoft.OData.Edm'(对于v4)而不是'Microsoft.Data.Edm'(对于v3).

所以我用这个替换了2个using语句:

using Microsoft.OData.Edm;
using Microsoft.OData.Edm.Csdl;
using Microsoft.OData.Edm.Validation;
Run Code Online (Sandbox Code Playgroud)

现在项目可以构建,但在运行时它会抛出此异常

"解析EDMX文档时遇到以下错误:UnexpectedXmlElement:根元素的元素'Edmx'是意外的.根元素应该是Edmx.:( 1,40)"

EdmBuilder此时类:

using (var reader = XmlReader.Create(stream))
            {
                return EdmxReader.Parse(reader);
            }
Run Code Online (Sandbox Code Playgroud)

有什么方法可以解决这个问题吗?就像EdmBuilder我可以在某处下载的新课程一样?:)

谢谢.

PS:我使用代码首次迁移和此代码在'WebApiConfig'中配置OData路由:

config.MapODataServiceRoute(
            routeName: "ODataRoute",
            routePrefix: "OData",
            model: EdmBuilder.GetEdm<MyDbContext>(),
            batchHandler: new DefaultODataBatchHandler(GlobalConfiguration.DefaultServer));
Run Code Online (Sandbox Code Playgroud)

asp.net entity-framework odata asp.net-web-api breeze

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

WebRTC:切换相机

我希望能够在与WebRTC的对话过程中切换相机,而无需重新协商呼叫.

假设我们使用以下MediaStreamTrack.getSources方法有2个"mediaSources"对象:

{
    id: "id_source_1" | "id_source_2",
    facing: "user" | "environment",
    kind: "kind_1" | "kind_2",
    label: "label_1" | "label_2"
 }
Run Code Online (Sandbox Code Playgroud)

我们用"source_1"(面向"用户")开始呼叫,我们希望用户能够切换到"source_2"(面向"环境").

在我当前的代码中,当用户单击"切换摄像机"按钮时,执行以下操作:( callingSession是当前的WebRTC会话)

var mediaParams = {
       audio: true,
       video: { deviceId : source_2.id},
       options: {
           muted: true,
           mirror: true
       },
       elemId: 'localVideo'
};

callingSession.getUserMedia(mediaParams, function (error, stream) {
if (error) {
   console.error('error getting user media');
} else {
          var oldVideoTracks = callingSession.localStream.getVideoTracks();      
          var newVideoTracks = stream.getVideoTracks();

          if (oldVideoTracks.length > 0 && newVideoTracks.length > 0) …
Run Code Online (Sandbox Code Playgroud)

webrtc

7
推荐指数
3
解决办法
7403
查看次数

json newtonsoft:反序列化包含字符串列表的Object

我对这个json有以下问题:

{
"EVTS": {
"EVT": [
  { "ID": "123456",
    "KEY1" : "somekey",
    "CATEG": [
      "cat1",
      "cat2",
      "cat3"
    ]
  }
  ]}
  }
Run Code Online (Sandbox Code Playgroud)

这个c#类:

public class myClass{
    public string ID { get; set; }
    public string KEY1 { get; set; } 

    public list<string> CATEG { get; set; } 
}

public class ESObject1
{

    [JsonProperty("EVT")]
    public List<myClass> EVT { get; set; }
}

public class ESObject0
{

    [JsonProperty("EVTS")]
    public ESObject1 EVTS { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

}

在这里我称之为解串器:

ESObject0 globalobject = JsonConvert.DeserializeObject<ESObject0>(json);
Run Code Online (Sandbox Code Playgroud)

但是这最后一个代码不起作用,我抛出了这个异常: …

.net c# asp.net json.net json-deserialization

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

breezejs问题与保存包

我正在使用breezejs,我的应用程序的服务器端代码是.net.

在我的观点(客户端),我想添加和实体然后我想保存它.让我们假设一个实体是这样的:

{
  "Id": 1,
  "Name": "someName",
  "CreatedDate": "1900-01-01T05:00:00Z",
  "UpdatedDate": "1900-01-01T05:00:00Z",
  "CreatedBy": null,
  "UpdatedBy": null,
  "RowVersion": 0,
   etc ...
  }
}
Run Code Online (Sandbox Code Playgroud)

我想设置的值CreatedDate UpdatedDate CreatedByUpdatedBy,我能做到这一点当然是使用JavaScript的,但我不希望客户采取这种事情的照顾.

我的微风控制器在哪里生活这个功能是这样的:

[HttpPost]
public SaveResult SaveChanges(JObject saveBundle)
{
    return _contextProvider.SaveChanges(saveBundle);
 }
Run Code Online (Sandbox Code Playgroud)

因为你可以看到saveBundle是一个JObject,当我调试时,我看到saveBundle是这样的:

{
"entities": [
{
  "Id": 1,
  "Name": "someName",
  "CreatedDate": "1900-01-01T05:00:00Z",
  "UpdatedDate": "1900-01-01T05:00:00Z",
  "CreatedBy": null,
  "UpdatedBy": null,
  "RowVersion": 0,
   etc ...
    }
  }
}
],
"saveOptions": {}
}
Run Code Online (Sandbox Code Playgroud)

如何在提交保存之前更改saveBundle中的值CreatedDate UpdatedDate CreatedByUpdatedBy

这是一个JObject,有一个对象数组作为proprety,我可以用javascript操纵Json,我怎么能用.Net ???

非常感谢.

.net javascript c# json breeze

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

ui-gmap-markers不起作用

我试图使用angular-google-maps库在地图中放置一些标记,我可以使用但不是很多标记绘制一个标记.这是我的js代码.ui-gmap-markerui-gmap-markers

angular.module('myApp').controller('homeController', [homeController]);

function homeController(){
    var vm = this;

    vm.map = {
        center:{
            latitude: 46.8032826,
            longitude: -71.242796
        },
        zoom: 12
    };

    vm.places = [
                 {
                   idKey: 583187,
                   latitude: 46.7682,
                   longitude: -71.3234,
                   title: "title"
                 }
               ];
};
Run Code Online (Sandbox Code Playgroud)

HTML:

<ion-view ng-controller="homeController as vm">
<ui-gmap-google-map draggable="true" center="vm.map.center" zoom="vm.map.zoom">
    <ui-gmap-markers models="vm.places" coords="'self'" icon="'icon'"></ui-gmap-markers>
</ui-gmap-google-map>
</ion-view>
Run Code Online (Sandbox Code Playgroud)

我可以看到地图,console.log我可以看到places数组已正确设置,但我看不到任何标记!我的代码出了什么问题?

谢谢.

PS:注意我使用离子,即时通讯它与问题无关.

google-maps angularjs

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

如何在lambda中使用async/await

如何在lambda表达式中正确使用async/await关键字?这是代码:

public async Task<IHttpActionResult> GetUsers() {

        var query = await _db.Users.ToListAsync();

        var users = query.Select(async u =>  new
        {
            FirstName = u.FirstName,
            LastName = u.LastName,
            IsGeek = await _userManager.IsInRoleAsync(u.Id, "Geek")
        });

        return Ok(users);
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,此代码在webapi控制器中运行,它编译时没有任何错误,问题是它需要额外的 await某处,因为此操作永远不会返回.

请注意,_db并且_usermanager是应用程序的DbContextUserManager.

谢谢.

更新:

这个等效的代码永远不会失败(但它不是优雅的:():

var query = await _db.Users.ToListAsync();
var users = new List<object>();
foreach (var u in query)
{
     bool IsGeek = await _userManager.IsInRoleAsync(u.Id, "IsGeek");
     users.Add( new {
         FirstName = u.FirstName,
         LastName …
Run Code Online (Sandbox Code Playgroud)

c# linq lambda async-await asp.net-web-api

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

SignalR JS 客户端:将参数传递给 invoke 方法

我正在尝试在一个对象appHub中编写一个函数,该函数将调用服务器上的方法。这是我的代码:

var connection = $.hubConnection();
var appHubProxy = connection.createHubProxy('appHub');

var appHub = {

     //some methods here

     invoke: function(){
        appHubProxy.invoke.call(arguments);
     }
}
Run Code Online (Sandbox Code Playgroud)

如您所见,该invoke方法应该像这样调用:

appHub.invoke('serverMethod', arg1, ..., argN)

运行此代码时出现此错误:

未捕获的类型错误:无法读取未定义的属性“_”

我试过了appHubProxy.invoke(arguments),它不会抛出错误,但当然,永远不会调用服务器方法。

如何正确地将参数传递给 SignalR 的 invoke 方法?

javascript signalr

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