即使我可以在http标头中看到我的值发布,控制器也会继续接收值为null,并且在查看完所有后我感到难过。
这是我的观点:
$("#dialog-form").dialog({
autoOpen: false,
height: 360,
width: 350,
modal: true,
buttons: {
"Send Message": function () {
if ($('#name').val() == '' || $('#email').val() == '' || $('#message').val() == '') {
$('.validation_message').html('required');
}
else {
var model =
{
Name: $('#name').val(),
Email: $('#email').val(),
Message: $('#message').val(),
ProfileEmail: $('#profile_email').val()
};
$.post('@Url.Action("SendMessage")', model, function (data) {
alert(data);
});
e.preventDefault();
$(this).dialog("close");
$('.validation_message').hide();
}
},
"Cancel": function () {
$(this).dialog("close");
$('.validation_message').hide();
}
}
});
$("#button-contact")
.button()
.click(function () {
$("#dialog-form").dialog("open");
});
我的控制器操作:
[HttpPost]
[ValidateInput(false)]
public ActionResult SendMessage(ProfileSendMessageModel message)
{
// some code here
return Content("Your message has been sent!");
}
模型始终显示null,但标题中的元素具有值。任何帮助都会非常感激!
答案 0 :(得分:3)
变化:
$.post('@Url.Action("SendMessage")', model, function (data) {
alert(data);
});
要:
$.post('@Url.Action("SendMessage")', {message: model}, function (data) {
alert(data);
});
答案 1 :(得分:1)
可能是因为您的参数名为message
而ProfileSendMessageModel
具有名为Message
的属性。模型绑定器可能尝试绑定ProfileSendMessageModel.Message
而不是整个模型。尝试更改参数名称。