ASp.net MVC Ajax Call显示无关紧要的行为

时间:2015-02-12 05:21:52

标签: asp.net ajax asp.net-mvc asp.net-mvc-4

我在asp.net mvc4中有一个简单的注册表单 在我的应用程序中,我已经将两个按钮用于数据保存,一个用于将已保存的数据显示到div中,并且为了显示目的,我已经编写了对函数后面的代码的ajax调用。

问题结果将显示在页面上,当我点击show table按钮时突然消失。我尝试使用断点,我发现每次控件重定向到ActionResult并返回功能。

我不知道为什么会这样,请帮我解决这个问题

查看

  <button type="submit" id="btnSave" name="Command" value="Register">Register</button>
     <input type="submit" value="Clear" name="Command"/>
     <input type="submit" id="Tabledata" />
    <div id="div1"></div>


<script type="text/javascript">
    var obj = document.getElementById("div1");
    $("#Tabledata").click(function () {
        $.ajax({
            url: 'sample/data',
            dataType:"text",
            type: "GET",
            contentType: "text/plain",
            async: true,
            processData: false,
            cache: false,
            success: function (data) {
                $("#div1").html(data);
            },
            error: function (xhr) {
                alert('error');
            }
        });
    });

控制器

public ActionResult submit(sample sam,string Command,dbconnection db)
        {


            SqlConnection con = new SqlConnection(db.GetconString());
            if (Command == "Register")
            {

                SqlCommand sqlCmd = new SqlCommand("sp_Sp_Register", con);
                con.Open();
                sqlCmd.CommandType = CommandType.StoredProcedure;  
                sqlCmd.Parameters.Add(new SqlParameter("@FirstName", @sam.FirstName));
                sqlCmd.Parameters.Add(new SqlParameter("@LastName", @sam.LastName));
                sqlCmd.Parameters.Add(new SqlParameter("@Address", @sam.Address));
                sqlCmd.Parameters.Add(new SqlParameter("@PhoneNumber", @sam.PhoneNumber));
                sqlCmd.Parameters.Add(new SqlParameter("@Location", @sam.Location));

                sqlCmd.ExecuteNonQuery();


                con.Close();
            }
            else if (Command == "Clear")
            {
            }
            else if (Command == "ShowTable")
            {

                 sam.tabledata = "<table>";
                DataTable dt;
                dt = db.BuildDT("select * from MVCsample");
                foreach (DataRow row in dt.Rows)
                {
                    sam.tabledata += "<tr border='1'><td>" + Convert.ToString(row["First Name"]) + "</td>";
                    sam.tabledata += "<td>" + Convert.ToString(row["Last Name"]) + "</td>";
                    sam.tabledata += "<td>" + Convert.ToString(row["Address"]) + "</td>";
                    sam.tabledata += "<td>" + Convert.ToString(row["PhoneNumber"]) + "</td>";
                    sam.tabledata += "<td>" + Convert.ToString(row["Location"]) + "</td></tr>";

                }
                sam.tabledata += "</table>";

                ViewBag.tabledata = sam.tabledata;

            }

            return View();

        }
        public string data(sample s,dbconnection db)
        {


           SqlConnection con = new SqlConnection(db.GetconString());

                 s.tabledata = "<table>";
                DataTable dt;
                dt = db.BuildDT("select * from MVCsample");
                foreach (DataRow row in dt.Rows)
                {
                    s.tabledata += "<tr border='1'><td>" + Convert.ToString(row["First Name"]) + "</td>";
                    s.tabledata += "<td>" + Convert.ToString(row["Last Name"]) + "</td>";
                    s.tabledata += "<td>" + Convert.ToString(row["Address"]) + "</td>";
                    s.tabledata += "<td>" + Convert.ToString(row["PhoneNumber"]) + "</td>";
                    s.tabledata += "<td>" + Convert.ToString(row["Location"]) + "</td></tr>";

                }
                s.tabledata += "</table>";

                //ViewBag.tabledata = s.tabledata;
                return s.tabledata;
        }

1 个答案:

答案 0 :(得分:1)

您应该使用按钮类型而不是提交类型。

替换

<input type="submit" id="Tabledata" />

<input type="button" id="Tabledata" />

将完美运作

希望这有帮助。