tôi có mô hình sau:mẫu ràng buộc với jquery ajax serialize không làm việc
public class RegisterUseraccount
{
[Required]
[DataType(DataType.EmailAddress)]
[Display(Name = "E-Mail-Adresse")]
public string Email { get; set; }
[Required]
[Display(Name = "Vorname")]
public string FirstName { get; set; }
[Required]
[Display(Name = "Nachname")]
public string LastName { get; set; }
[Required]
[DataType(DataType.Password)]
[MinLength(5)]
[Display(Name = "Passwort")]
public string Password { get; set; }
...
}
Và quan điểm sau đây:
@using (Html.BeginForm("Register", "Useraccount", FormMethod.Post, new { id = "registerUseraccountForm", @class = "ym-form" }))
{
@Html.ValidationSummary(true)
<div class="ym-grid">
<div class="ym-g50 ym-gl">
<div class="ym-fbox-text">
@Html.LabelForRequired(model => model.RegisterUseraccount.FirstName, null)
@Html.EditorFor(model => model.RegisterUseraccount.FirstName, new { required = "required", name = "firstName" })
@Html.ValidationMessageFor(model => model.RegisterUseraccount.FirstName)
</div>
</div>
...
và JavaScript của tôi
function sendForm(target) {
alert(data);
$.ajax({
url: target,
type: "POST",
contentType: 'application/json',
data: $("#registerUseraccountForm").serialize(),
success: ajaxOnSuccess,
error: function (jqXHR, exception) {
alert('Error message.');
}
});
Đây là kết quả của việc tuần tự hóa:
RegisterUseraccount.FirstName=Peter&RegisterUseraccount.LastName=Miller&RegisterUseraccount.Email=miller%40gmail.com&RegisterUseraccount.Password=admin
Đây là phương pháp điều khiển của tôi, tôi đang cố gắng để POST để:
[HttpPost]
public ActionResult Register(RegisterUseraccount registerUseraccount)
{
...
}
... nhưng dữ liệu không đến phương pháp này, tôi nhận được một lỗi 404. Tôi nghĩ rằng ModelBinder có thể' t làm việc.
Dữ liệu hoạt động là dữ liệu được gửi với tên firstName = Peter, nhưng những gì thực sự được gửi là RegisterUseraccount.FirstName = Peter.
Tôi làm cách nào để xử lý sự cố này?
Bạn có chắc chắn 'url' là đúng? – Zabavsky
Bạn đang gọi phương thức 'sendForm' ở đâu? – Shyju
xóa 'contentType: 'application/json',' –