2013-02-10 2 views
0

Does SignlaR автоматически сопоставляет объект json, отправленный от клиента к объекту C#? если да, то что я могу делать неправильно здесь?SingalR Maping json object to C# object

C# Объект

public class ChatHub :Hub 
    { 
     public void broadcastMessage(CommentModel model) 
     { 
      string test = model.Comment; 
      // Clients.All.writeMessage(jsonString); 
     } 


     public class CommentModel 
     { 
      [Required] 
      public string Name { get; set; } 

      [Required] 
      public string Comment { get; set; } 

      [Required] 
      public string EmailAddress { get; set; } 
     } 
    } 

JavaScript

$(document).ready(function() { 

     var chat = $.connection.chatHub; 
     chat.client.writeMessage = function (t) { 
      var name = t.Name; 
      var email = t.Email; 
      var id = t.id; 
      var text = name + " " + email + " " + id + " "; 
      $("#test").append(text); 
     } 

     $("form").submit(function (e) { 

      var jsonObject = JSON.stringify($(this).serializeObject()); 
      chat.server.broadcastMessage(jsonObject); 
      e.preventDefault(); 
     }); 

     $.connection.hub.start(); 
    }); 

    $.fn.serializeObject = function() { 
     var o = {}; 
     var a = this.serializeArray(); 
     $.each(a, function() { 
      if (o[this.name] !== undefined) { 
       if (!o[this.name].push) { 
        o[this.name] = [o[this.name]]; 
       } 
       o[this.name].push(this.value || ''); 
      } else { 
       o[this.name] = this.value || ''; 
      } 
     }); 
     return o; 
    }; 

ответ

2

Вы, кажется, посылает строку JSON на сервер приложений, тогда как сервер ожидает объект.

Изменение:

var jsonObject = JSON.stringify($(this).serializeObject()); 

To:

var jsonObject = $(this).serializeObject(); 

 Смежные вопросы

  • Нет связанных вопросов^_^