【问题标题】:Sending Complex Object From Angular to SignalR将复杂对象从 Angular 发送到 SignalR
【发布时间】:2015-02-18 14:03:08
【问题描述】:

我无法将复杂对象发送到我的 SignalR 集线器。我的 JavaScript 对象与我的 C# 对象完全匹配,所以我希望一切正常。但是,我无法使用我的 UpdateEmployee 方法。我的集线器中有其他方法可以很好地处理简单类型。这是我目前已经实现的 -

SignalR 集线器

public void UpdateEmployee(int userId, Employee employee)
{
    // Update employee
}

Employee 定义为

public class Employee: Persistable
{
    [DataMember]
    public DateTime? DateOfBirth { get; set; }
    [DataMember]
    public string FirstName { get; set; }
    [DataMember]
    public string LastName { get; set; }
}

这只是简单地继承Persistable

[DataContract]
public class Persistable
{
    [DataMember(Name = "id")]
    [JsonProperty(PropertyName = "id")]
    public int Id { get; set; }
}

我正在尝试从我的 SignalR JavaScript 客户端中使用该方法

$.connection.myHub.server.updateEmployee(userId, employee);

我的 employee 对象在 JavaScript 中的样子

{ Id: 1, FirstName: "Test", LastName: "One", DateOfBirth: "01012001" } 

我在这里做错了吗?

【问题讨论】:

  • 你试过没有 DateOfBirth 值吗?
  • 啊!好决定。当我传入 null DateTime (因为它在 C# 中可以为空)时,我可以访问该方法。也许我只需要在 JavaScript 中解析日期,然后再将其传递到集线器。

标签: javascript c# asp.net angularjs signalr


【解决方案1】:

你试过没有DateOfBirth 值吗?

也许它无法将您的值01012001 绑定到可为空的日期时间?我感觉它必须是 NULL 或可绑定值,否则绑定实际上会失败。

【讨论】:

  • 是的,似乎是这样。现在正在解析日期。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多