asp.net-mvc – 使用jquery进行模型绑定ajax序列化不起作用

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – 使用jquery进行模型绑定ajax序列化不起作用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下型号:
  1. public class RegisterUseraccount
  2. {
  3. [required]
  4. [DataType(DataType.EmailAddress)]
  5. [Display(Name = "E-Mail-Adresse")]
  6. public string Email { get; set; }
  7.  
  8. [required]
  9. [Display(Name = "Vorname")]
  10. public string FirstName { get; set; }
  11.  
  12. [required]
  13. [Display(Name = "Nachname")]
  14. public string LastName { get; set; }
  15.  
  16. [required]
  17. [DataType(DataType.Password)]
  18. [MinLength(5)]
  19. [Display(Name = "Passwort")]
  20. public string Password { get; set; }
  21.  
  22. ...
  23. }

以下观点:

  1. @using (Html.BeginForm("Register","Useraccount",FormMethod.Post,new { id = "registerUseraccountForm",@class = "ym-form" }))
  2. {
  3. @Html.ValidationSummary(true)
  4.  
  5. <div class="ym-grid">
  6. <div class="ym-g50 ym-gl">
  7. <div class="ym-fBox-text">
  8. @Html.LabelForrequired(model => model.RegisterUseraccount.FirstName,null)
  9. @Html.EditorFor(model => model.RegisterUseraccount.FirstName,new { required = "required",name = "firstName" })
  10. @Html.ValidationMessageFor(model => model.RegisterUseraccount.FirstName)
  11. </div>
  12. </div>
  13. ...

和我的JavaScript

  1. function sendForm(target) {
  2. alert(data);
  3. $.ajax({
  4. url: target,type: "POST",contentType: 'application/json',data: $("#registerUseraccountForm").serialize(),success: ajaxOnSuccess,error: function (jqXHR,exception) {
  5. alert('Error message.');
  6. }
  7. });

这是序列化的结果:

  1. RegisterUseraccount.FirstName=Peter&RegisterUseraccount.LastName=Miller&RegisterUseraccount.Email=miller%40gmail.com&RegisterUseraccount.Password=admin

这是我试图POST到的控制器方法

  1. [HttpPost]
  2. public ActionResult Register(RegisterUseraccount registerUseraccount)
  3. {
  4. ...
  5. }

…但是数据没有到达方法,我收到错误404.我认为模型绑定器无法工作.

什么有效是以名称firstName = Peter发送的数据,但实际发送的是RegisterUseraccount.FirstName = Peter.

我该如何处理这个问题?

解决方法

删除contentType:’application / json’,并将其修改为更好(从我的角度来看)
  1. $('#registerUseraccountForm').submit(function () {
  2. if ($(this).valid()) {
  3. $.ajax({
  4. url: this.action,type: this.method,data: $(this).serialize(),beforeSend: function () {
  5.  
  6. },complete: function () {
  7.  
  8. },...

猜你在找的asp.Net相关文章