Javascript 如何使用mvc3从数据库中删除数据?

Javascript 如何使用mvc3从数据库中删除数据?,javascript,json,asp.net-mvc-3,delete-row,Javascript,Json,Asp.net Mvc 3,Delete Row,我不熟悉Json数据类型。如何检索它。。请看下面的代码 这是我的Javascript代码: function fnDeleteSelected() { var count_checked = $("[name = 'myChkBox[]']:checked").length; var arrayOfID = []; $(':[name = "myChkBox[]"]:checked').each(f

我不熟悉Json数据类型。如何检索它。。请看下面的代码

这是我的Javascript代码:

function fnDeleteSelected() {
            var count_checked = $("[name = 'myChkBox[]']:checked").length;            
            var arrayOfID = [];

            $(':[name = "myChkBox[]"]:checked').each(function () {
                arrayOfID.push($(this).val());
            });            
            var test = JSON.stringify(arrayOfID);
            alert(test);
            if (count_checked == 0) {
                alert("Please Select a Student to delete");
                return false;
            }
            else {
                var confirmDel = confirm("Are you sure you want to delete this?");                
                if (confirmDel == true) {
                    jQuery.ajax({
                        url: baseUrl + "DeleteSelected/",
                        type: 'Post',
                        dataType: 'Json',
                        data: { Parameters: test },
                        success: function (msg) {
                            jQuery("input:checkbox:checked").parents("tr").remove();
                        }
                    });enter code here
                }
            }
        }
这里发送给控制器的数据是参数,其中参数=[“143”、“144”、“145”]

我的控制器是:其中参数以“[\“143\”,“144\”,“145\”]的形式传递。我的问题是如何解析参数,以便将其嵌入sql语句中

public JsonResult DeleteSelected(string [] Parameters)
        {string strConn = "Data Source=localhost;Initial Catalog=Information;Integrated Security=SSPI;";
        SqlConnection conn = new SqlConnection(strConn);

        string strSql = "DELETE FROM dbStudent where ID in";

        SqlCommand myCommand = new SqlCommand(strSql, conn);
        try
        {
            conn.Open();
            myCommand.ExecuteNonQuery();
            conn.Close();                
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
        return Json(Parameters, JsonRequestBehavior.AllowGet);
    }

strSql中应该有什么?

您可以将数组转换为int数组

int[] myInts = Parameters.Select(int.Parse).ToArray();
然后


您可以将ajax帖子更改为:(contentType很重要)

你的行动方法是什么

  public JsonResult DeleteSelected(int[] Parameters)
    {
        string strConn = "Data Source=localhost;Initial Catalog=Information;Integrated Security=SSPI;";
        SqlConnection conn = new SqlConnection(strConn);

        var strSql = "DELETE FROM dbStudent where ID IN (" + String.Join(",", Parameters) + ")";

        SqlCommand myCommand = new SqlCommand(strSql, conn);
        try
        {
            conn.Open();
            myCommand.ExecuteNonQuery();
            conn.Close();
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
        return Json(Parameters, JsonRequestBehavior.AllowGet);
    }

我建议使用类似ORM的实体框架。它更易于使用,而且您不必为SQL注入等清理每个输入。是的,这将更容易,但我被要求以上述格式执行。。所以,你能帮我一下吗?我收到一个错误,说输入字符串的格式不正确,你哪里出错了?将字符串形式的值。Join(“,”,myInts)放在一个字符串变量中,通过Debugger查看值是什么。我只想将“[\“143\”,“144\”,“145\”]”更改为sql语句可以接受的int。请帮助尝试至少使用列表而不是字符串数组?谢谢,但我已经解决了它。。我比较了我们的答案,结果有点相似。。。哈哈哈,当我们心情不好的时候,小错误是看不见的。但我已经头脑风暴并完成了。再次感谢你的回答
  jQuery.ajax({
                url: baseUrl + "DeleteSelected/",
                type: 'Post',
                dataType: 'json',
                data: JSON.stringify(arrayOfID),
                contentType: 'application/json; charset=utf-8',
                success: function (msg) {
                    jQuery("input:checkbox:checked").parents("tr").remove();
                }
            });
  public JsonResult DeleteSelected(int[] Parameters)
    {
        string strConn = "Data Source=localhost;Initial Catalog=Information;Integrated Security=SSPI;";
        SqlConnection conn = new SqlConnection(strConn);

        var strSql = "DELETE FROM dbStudent where ID IN (" + String.Join(",", Parameters) + ")";

        SqlCommand myCommand = new SqlCommand(strSql, conn);
        try
        {
            conn.Open();
            myCommand.ExecuteNonQuery();
            conn.Close();
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
        return Json(Parameters, JsonRequestBehavior.AllowGet);
    }