Я пытаюсь использовать функцию jQuery $ .ajax () для отправки переменных формы в MVC маршрут. Проблема в том, что когда код попадает в мое действие MVC, все параметры равны нулю, даже если им передаются данные:
jQuery:
$(function () {
$('#signupform').submit(function (e) {
e.preventDefault();
if ($(this).valid()) {
var postData = '{name : "' + $("#Name").val() + '", email : "' + $("#Email").val() + '", message : "' + $("#Message").val() + '" }';
$.ajax({
url: "/api/contact-form-post",
data: postData,
type: "get"
})
.complete(function (data) {
$("#formContainer").html($("#formThankYou").html());
});
}
});
});
вызов alert (postData) выводит следующее:
{name : "Scott Smith", email : "scott@smith.com", message : "test message" }
Действие MVC:
public JsonResult ContactFormPost(string email, string name = "" , string message = "")
{
AddEmailToMailingList(email);
if (!String.IsNullOrEmpty(name) && !String.IsNullOrEmpty(message))
{
InsertContactMessage(email, name, message);
}
return Json(true);
}
Использование FireBug для проверки запроса показывает, что это вызываемый URL. Очевидно, что параметры URL-адреса имеют неправильный формат, но я не могу понять, почему.
http: // localhost:22scott@smith.com% 22,% 20message% 20:% 20% 22Test% 20message% 22% 20}
Совершаю ли я здесь какие-либо очевидные ошибки, из-за которых параметры моего метода ContactFormPost всегда будут нулевыми?