通过ajax向控制器发送复杂数据对象的最佳方法?

通过ajax向控制器发送复杂数据对象的最佳方法?,ajax,asp.net-mvc-5,Ajax,Asp.net Mvc 5,我想通过Ajax将复杂对象从视图发送到控制器。我知道我可以做一些事情,比如: JSON.stringify(myComplexObject); 然后检索控制器中的值。但这真的是最好的方法吗?我认为视图和控制器之间的某种数据契约会更好?您可以使用以下方法 @using(Html.BeginForm("YourAction","YourController",FormMethod.Post)) { .... } <script> $(function () { $('for

我想通过Ajax将复杂对象从视图发送到控制器。我知道我可以做一些事情,比如:

JSON.stringify(myComplexObject);

然后检索控制器中的值。但这真的是最好的方法吗?我认为视图和控制器之间的某种数据契约会更好?

您可以使用以下方法

@using(Html.BeginForm("YourAction","YourController",FormMethod.Post))
{
 ....
}

<script>
$(function () {
    $('form').submit(function () {
        if ($(this).valid()) {
            $.ajax({
                url: this.action,
                type: this.method,
                data: $(this).serialize(),
                success: function (result) {
                       alert('Ok');
                }
            });
        }
        return false;
    });
});
</script>

希望这将帮助您制作一个ApiController,并将其用于客户端和服务器之间的JSON通信
public ActionResult YourAction(YourModel model)
{
}