无法使用Jquery.Ajax将我的模型从我的Controller传递到我的View

时间:2014-05-23 21:25:53

标签: javascript jquery ajax asp.net-mvc

我对网络应用程序开发,javascript和MVC都比较陌生,所以请耐心等待。

我想使用Jquery.Ajax命令将我的模型发布到我的控制器。

我的观点:

@model MVC_Interface_May21.Models.DataValuesViewModel

...

<form method="post" id="testForm">

<input type="submit" class="subButton" value="Add New.." />

</form>

...

<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js'>

$(document).ready(function () {

$('#testForm').submit(function (e) {
        e.preventDefault();

        @{var val = Json.Encode(Model);}
        var check = '@Html.Raw(val)';
        $.ajax({
            url: 'Results/AddNew',
            type: 'POST',
            //data: JSON.stringify(check),
            contentType: 'application/json; charset=utf-8',
            success: function (data) {
                alert(data);
            }
        });
    });
}
...

</script>

我没有包含我的模型或控制器的代码,因为我不相信它们是问题的一部分。目前,我的代码只是回发到同一页面。据我所知,ajax命令没有被执行。调试器没有帮助我跟踪行为,我假设表单只是在提交并忽略我的函数。

非常感谢任何帮助,如果过去已经回答过,我很抱歉。我通过查看其他解决方案开发了我的代码,但我无法确定是什么导致我的功能失调。

1 个答案:

答案 0 :(得分:0)

你必须阅读更多关于MVC的内容,我甚至不确定你是在尝试序列化这样的Razor模型,但这是你从服务器获得的,而不是你的HTML表单,无论用户输入是什么

您可以使用此js函数提交带有Ajax的表单。

$(function () {
    $('#myForm').submit(function () {
        if ($(this).valid()) {
            $.ajax({
                url: this.action,
                type: this.method,
                data: $(this).serialize(),
                success: function (result) {
                    $('#result').html(result);
                }
            });
        }
        return false;
    });
});

使用创建表单并输入助手/

@Html.BeginFor
@Html.EditorFor