【发布时间】: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 值吗?
-
啊!好决定。当我传入
nullDateTime (因为它在 C# 中可以为空)时,我可以访问该方法。也许我只需要在 JavaScript 中解析日期,然后再将其传递到集线器。
标签: javascript c# asp.net angularjs signalr