第一次使用SignalR,我遇到了一些问题。我试图做的是一旦用户将新用户添加到系统,就异步更新我的jTable。问题是,每次我尝试提交时,都会遇到下面的错误。我不确定问题是什么,因为填充我的CreateUserModel所需的所有数据都通过了。关于我做错了什么的想法?
错误
{"I":"0","E":"Error converting value \"UserId=19&FirstName=123&LastName=123&UserName=123&Role=Admin&Password=123123&ConfirmPassword=123123&EmailAddress=fakeEmail%40gmail.com&PhoneNumber=123\" to type 'MyProject.Models.CreateUserModel'.
模型我正在尝试转换为
public class CreateUserModel {
public int UserId { get; set; }
public string UserName { get; set; }
public string Password { get; set; }
public string ConfirmPassword { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string EmailAddress { get; set; }
public string PhoneNumber { get; set; }
public string Role { get; set; }
public IEnumerable<SelectListItem> RolesItem {
get { return new SelectList(UserUtils.getAllRoles()); }
}
}
集线器
public class JTableHub : Hub {
public void UpdateUserTable(CreateUserModel userModel) {
Clients.All.updateTable(userModel);
}
}
signalR代码
<script type="text/javascript">
$(document).ready(function () {
var chat = $.connection.jTableHub;
chat.client.updateTable = function (userModel) {
$('#usersTable').jtable('addRecord', {
record: userModel,
clientOnly: true
});
};
$.connection.hub.start().done(function () {
$('#btnAdd').click(function () {
var data = $('#addUserForm').serialize();
chat.server.updateUserTable(data);
});
});
});
</script>
答案 0 :(得分:5)
.serialize不能用于发送表单url编码数据。 SignalR仅支持JSON。