MVC 4控制器函数异常字符串引用未设置为String的实例

时间:2015-06-03 16:39:27

标签: c# asp.net-mvc asp.net-mvc-4

我正在构建我在MVC 4中的第一个项目,它与数据库相关。我只使用一个控制器,它有三个功能插入,删除和更新,并使用一个模型但乘法视图。 每当我运行网站时,它给我的表格有三个按钮。这是那些按钮的样本。

enter image description here

“插入”按钮运行正常但当我单击“删除”时,它给出了控制器字符串引用中的异常未设置为字符串的实例。

现在,这是我的代码:

控制器:

  [HttpGet]
    public ActionResult inserted(string user)
    {


            DataContractJsonSerializer js = new DataContractJsonSerializer(typeof(UserProperties));
            MemoryStream ms = new MemoryStream(System.Text.UnicodeEncoding.Unicode.GetBytes(user));

            UserProperties userData = (UserProperties)js.ReadObject(ms);
            SqlConnection sqlConnection = new SqlConnection(@"Data Source=.\SQLEXPRESS;Initial Catalog=A11_MVC;Integrated Security=True");
            SqlCommand sqlCommand = new SqlCommand("insertProcedure", sqlConnection);
            sqlCommand.CommandType = System.Data.CommandType.StoredProcedure;


            sqlCommand.Parameters.Add(new SqlParameter("Age", userData.Age));
            sqlCommand.Parameters.Add(new SqlParameter("Email", userData.Email));

            try
            {
                sqlConnection.Open();
                sqlCommand.ExecuteNonQuery();

            }
            catch (Exception ex)
            {
                Console.Write(ex);
            }

            sqlConnection.Close();
            RedirectToAction("showAll");
            return View();  
    }


    //------------------------------------------- *DELETE* ------------------------------------//
    [HttpGet]
    public ActionResult Delete(string user)
    {


        DataContractJsonSerializer js = new DataContractJsonSerializer(typeof(UserProperties));

        MemoryStream ms = new MemoryStream(System.Text.UnicodeEncoding.Unicode.GetBytes(user));
        UserProperties userData = (UserProperties)js.ReadObject(ms);
        SqlConnection sqlConnection = new SqlConnection(@"Data Source=.\SQLEXPRESS;Initial Catalog=A11_MVC;Integrated Security=True");
        SqlCommand sqlCommand = new SqlCommand("deleteProcedure", sqlConnection);
        sqlCommand.CommandType = System.Data.CommandType.StoredProcedure;

        sqlCommand.Parameters.Add(new SqlParameter("Id", userData.ID));


        try
        {
            sqlConnection.Open();
            sqlCommand.ExecuteNonQuery();

        }
        catch (Exception ex)
        {
            Console.Write(ex);
        }
        sqlConnection.Close();
        RedirectToAction("showAll");
        return View();


    }

以下是例外图片:

enter image description here

我在做什么错误?抱歉我的英语。

1 个答案:

答案 0 :(得分:1)

控制器中的用户参数为null。那就是问题所在。检查生成的URL。它确实带有用户字符串?