我正在构建我在MVC 4中的第一个项目,它与数据库相关。我只使用一个控制器,它有三个功能插入,删除和更新,并使用一个模型但乘法视图。 每当我运行网站时,它给我的表格有三个按钮。这是那些按钮的样本。
“插入”按钮运行正常但当我单击“删除”时,它给出了控制器字符串引用中的异常未设置为字符串的实例。
现在,这是我的代码:
控制器:
[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();
}
以下是例外图片:
我在做什么错误?抱歉我的英语。
答案 0 :(得分:1)
控制器中的用户参数为null。那就是问题所在。检查生成的URL。它确实带有用户字符串?