使用ajax提交cshtml表单

时间:2014-07-11 18:38:37

标签: c# javascript jquery ajax

@{
var db = Database.Open("CMS");

//retrieving the username of the user from the session
var session_username = Session["session_username"];

//get the details of the user from the database
var getuserdetailscommand = "SELECT * from student where student_username = @0";
var getuserdetailsdata = db.Query(getuserdetailscommand, session_username);

var statusfirstname = "";
var statuslastname = "";
var statusavatar = "";

foreach(var row in getuserdetailsdata){
    statusfirstname = row.student_firstname;
    statuslastname = row.student_lastname;
    statusavatar = row.student_avatar;
}

//on submit execute the following queries
if(IsPost){
    if(Request["button"] == "sharestatus"){
        //retrieve the data from the form input fields
        var statusbody = Request.Form["statusbody"];
        var statususername = session_username;

        //insert the status for the username into the database
        var insertcommand = "INSERT into status(status_body, status_date, status_username, status_firstname, status_lastname, status_avatar) VALUES (@0, @1, @2, @3, @4, @5)";
        db.Execute(insertcommand, statusbody, DateTime.Now, session_username, statusfirstname, statuslastname, statusavatar);
    }
}
}
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<script type="text/javascript">
        function get() {
        $.post('statusupdateform.cshtml', { name: form.name.value }
    }
</script>

                                        <form class="status-form" role="form" action="" enctype="multipart/form-data" method="post" name="form">
                                            <div class="form-body">
                                                <div class="form-group">
                                                    <textarea class="form-control" placeholder="What's on your mind?" name="statusbody"></textarea>
                                                </div>
                                            </div>
                                            <div class="form-footer">
                                                <div class="pull-right actions">
                                                    <button class="btn btn-primary" name="button" value="sharestatus" onclick="event.preventDefault();get();return false;">Share</button>
                                                </div>
                                            </div>
                                        </form>

这是我的cshtml文件中的代码。我想使用ajax提交表单,以便每次用户提交任何内容时都不会刷新整个页面。

代码中还提供了运行表单所需的C#代码。

任何帮助我如何使用ajax提交for?

谢谢!

3 个答案:

答案 0 :(得分:0)

使用Javascript或JQuery。 例如。添加带有jquery代码文件链接的脚本标记,然后使用$ .get或$ .post进行ajax调用。

答案 1 :(得分:0)

你应该删除

method="post"

从表单中提取完整页面。您还可以在Jquery文档中找到有关如何执行此操作的更多信息。

请参阅此链接的底部以获取示例:

http://api.jquery.com/jquery.post/

答案 2 :(得分:0)

使用此功能执行操作

            $.ajax
                ({
                    url: " URL",

                    data: "{ 'name' : 'DATA'}",

                    dataType: "json",

                    type: "POST",

                    contentType: "application/json; charset=utf-8",                   

                    async: true,

                    dataFilter: function (data) { return data; },

                    success: function (data) 
                    {
                        alert(data);
                    },
                    error: function (XMLHttpRequest, textStatus, errorThrown) {
                        alert("error");
                    }
                });