1

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);
  }
}

シグナルRコード

<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>
4

1 に答える 1

5

.serialize はフォーム URL エンコード データを送信するため使用できません。SignalR は JSON のみをサポートします。

于 2013-08-20T02:35:27.007 に答える