2011-03-22 44 views
0

问题是我无法接收控制器中的任何值。有什么可能是错的?代码在这里。asp.net mvc 3 json值没有收到控制器

$('#save').click(function() { 

     var UserLoginViewModel = { UserName: $('vcr_UserName').val(), 
      Password: $('vcr_Password').val() 
     }; 
     $.ajax({ 
      url: "/User/Login", 
      data: JSON.stringify(UserLoginViewModel), 
      contenttype: "application/json; charset=utf-8", 
      success: function (mydata) { 
       $("#message").html("Login"); 
      }, 
      error: function() { 
       $("#message").html("error"); 
      }, 
      type: "POST", 
      datatype: "json" 
     }); 
     return false; 
    }); 
}); 

    [HttpPost] 
    public ActionResult Login(UserLoginViewModel UserLoginViewModel) 
    { 

    } 

回答

1

您将需要一个操作过滤器或类似的工具来拦截邮件正文中的json。

这里有一个启动

Provider Factory

但这里要说的是分类这对我的文章On Haacked

这是很好的,如果你知道你deserialising到了前面的类型,但如果你需要多态性你最终会在动作过滤器中使用这些想法。

+0

MVC 3包含内置支持JSON模型绑定 – 2011-03-22 13:29:14

3

当您使用MVC3时,您应该能够利用内置的JSON模型绑定。

你的代码示例有几个错别字:contentTypedataType都是小写......(他们应该有一个大写的“T”)

jQuery ajax docs

你张贴了正确的contentType /的dataType后, MVC应该自动将您的对象绑定到发布的JSON。

+0

谢谢!我也有与拼写错误选项同样的问题 – Neil 2011-05-28 14:47:57