我正在尝试使用post将数据保存到从视图传递的数据库中。 我没有收到任何错误,但没有将值添加到数据库中。
我的json看起来像
{
"Schedule Name": "name1",
"data1": "a3c1",
"data2": "a3c1",
"data3": "a3c1",
"data4": "a3c1",
"data5": "a3c1",
"data6": "a3c1",
"data7": "a3c1"
}
这是我的控制器
public class ScheduleController : Controller
{
DatabaseContext _db = new DatabaseContext();
public ActionResult schedule()
{
return View();
}
[HttpPost]
public ActionResult Addmore(string list1)
{
bool result = true;
newlist personData;
JavaScriptSerializer jss = new JavaScriptSerializer();
personData = jss.Deserialize<newlist>(list1);
savv(personData);
return Content(result.ToString());
}
public void savv(newlist nl)
{
if (ModelState.IsValid)
{
using (_db)
{
_db.Schedule.Add(nl);
_db.SaveChanges();
ModelState.Clear();
}
}
}
public class newlist
{
public string namIDs { get; set; }
public string aIDs { get; set; }
public string bIDs { get; set; }
public string cIDs { get; set; }
public string dIDs { get; set; }
public string eIDs { get; set; }
public string fIDs { get; set; }
public string gIDs { get; set; }
}
}
这是我的数据库
public class DatabaseContext : DbContext
{
public DatabaseContext()
: base("DefaultConnection")
{
}
public DbSet<ScheduleController.newlist> Schedule { get; set; }
}
这是我的帖子
table_content = JSON.stringify({ 'Schedule Name': def ,'data1':data1 ,'data2':data2,'data3':data3,'data4':data4,'data5':data5,'data6':data6,'data7':data7});
alert(table_content);
$.post(url1, {
jsonData: table_content
},
function (data, textStatus) {
alert(textStatus);
if (textStatus != "success") {
alert(textStatus);
}
});
文本状态始终返回“成功”但没有值存储到数据库中 有人可以帮帮我吗?我错过了代码的任何事情?
我只是用另一种方法将值存储到数据库
public ActionResult Addmore(newlist personData)
{
var data1 = "hello";
bool result = false;
try
{
con.Open();
//SqlCommand cmd = new SqlCommand("Insert INTO Sche values('" + personData.namIDs + "','" + personData.aIDs + "','" + personData.bIDs + "','" + personData.cIDs + "','" + personData.dIDs + "','" + personData.eIDs + "','" + personData.fIDs + "','" + personData.gIDs + "')", con);
SqlCommand cmd = new SqlCommand("INSERT INTO Sche VALUES('" + data1 + "','" + data1 + "','" + data1 + "','" + data1 + "','" + data1 + "','" + data1 + "','" + data1 + "','" + data1 + "')", con);
int i = cmd.ExecuteNonQuery();
con.Close();
if (i > 0) { result = true; }
}
catch (Exception e)
{
result = false;
}
return Content(result.ToString());
}
但它仍然不适合我
即使通过我在代码
上输入此内容SqlCommand cmd = new SqlCommand("INSERT INTO Sche VALUES(1,2,3,4,5,6,7,8)", con);
但它仍未添加到数据库中 这不是连接错误,因为此命令行可以正常工作
string query =“SELECT * FROM Sche”; SqlCommand command = new SqlCommand(query,connection);
答案 0 :(得分:0)
您的操作的参数名称和帖子参数名称必须相同。将 +----------+
| 1 | 2 | 3 |
+---+---+---+
| 4 | 5 | 6 |
+---+---+---+
| 7 | 8 | 9 |
+---+---+---+
| 10| 11| 12|
+---+---+---+
更改为jsonData
,反之亦然
答案 1 :(得分:0)
试试这个
[HttpPost]
public ActionResult Addmore(newlist personData)
{
bool result = true;
JavaScriptSerializer jss = new JavaScriptSerializer();
savv(personData);
return Content(result.ToString());
}
的Ajax:
$.ajax({
url: '@Url.Action("Addmore", "Schedule")',
data: JSON.stringify({ namIDs : 'def' ,aIDs:'data1' ,bIDs :'data2',cIDs :'data3',dIDs :'data4',eIDs :'data5',fIDs :'data6',gIDs:'data7'}),
dataType: 'json',
type: 'POST',
contentType: "application/json; charset=utf-8",
success: function (data) {
}
});
答案 2 :(得分:-1)
就个人而言,我不会使用MVC控制器并对json进行字符串化,因为它会改变数据类型。按原样发布数据并使用Web API。它有一个内置的机制来解析JSON数据