Jquery.ajax 将 null 发送到控制器,但使用硬编码变量
Jquery.ajax sends null to controller, but works with hard-coded variables
我正在用 vs code 制作一个简单的应用程序,我想将值保存到数据库中,这就是我目前所做的。
var naziv = $("#TextNaziv").val();
var cena = $("#TextCena").val();
var opis = $("#TextOpis").val();
//console.log("Cena:" + cena);
// console.log("Opis:" + opis);
// console.log("Naziv:" + naziv);
var proizvod = {
Naziv: "nazivTest123",
Cena: 33,
Opis: "opisTest123"
}
// console.log(proizvod);
var zahtev = $.ajax({
type: "POST",
url: "/Home/UbaciProizvod",
data: JSON.stringify(proizvod),
contentType: "application/json",
dataType: "text",
});
这工作正常,没有任何问题,但是当我将 var proizvod 更改为:
var proizvod = {
Naziv: naziv,
Cena: cena,
Opis: opis
}
应用程序不会将值保存到数据库中,即使我在控制台中检查过并且值很好,控制器接收到空值。我尝试了我在互联网上看到的一切,但似乎没有任何帮助,也许是一些小问题,但我无法解决,我的控制器功能如下所示:
public int UbaciProizvod([FromBody] Proizvod p )
{
string upit = @"INSERT INTO Proizvod VALUES(@Naziv,@Cena,@Opis);
SELECT CAST(SCOPE_IDENTITY() AS int)";
using(SqlConnection konekcija = new SqlConnection(Konekcija.CnnMagacin))
{
try
{
int id = konekcija.QuerySingleOrDefault<int>(upit,p);
return id;
}
catch (System.Exception)
{
return -1;
}
}
}
这是我的第一个 post 所以欢迎每一个建议和批评,对变量名表示抱歉。
这两个版本的区别在于,您在工作版本中提供 Cena
作为整数值,但在非工作版本中提供字符串。
要在发出 AJAX 请求之前修复此调用 parseInt()
的值:
var proizvod = {
Naziv: naziv,
Cena: parseInt(cena, 10),
Opis: opis
}
我正在用 vs code 制作一个简单的应用程序,我想将值保存到数据库中,这就是我目前所做的。
var naziv = $("#TextNaziv").val();
var cena = $("#TextCena").val();
var opis = $("#TextOpis").val();
//console.log("Cena:" + cena);
// console.log("Opis:" + opis);
// console.log("Naziv:" + naziv);
var proizvod = {
Naziv: "nazivTest123",
Cena: 33,
Opis: "opisTest123"
}
// console.log(proizvod);
var zahtev = $.ajax({
type: "POST",
url: "/Home/UbaciProizvod",
data: JSON.stringify(proizvod),
contentType: "application/json",
dataType: "text",
});
这工作正常,没有任何问题,但是当我将 var proizvod 更改为:
var proizvod = {
Naziv: naziv,
Cena: cena,
Opis: opis
}
应用程序不会将值保存到数据库中,即使我在控制台中检查过并且值很好,控制器接收到空值。我尝试了我在互联网上看到的一切,但似乎没有任何帮助,也许是一些小问题,但我无法解决,我的控制器功能如下所示:
public int UbaciProizvod([FromBody] Proizvod p )
{
string upit = @"INSERT INTO Proizvod VALUES(@Naziv,@Cena,@Opis);
SELECT CAST(SCOPE_IDENTITY() AS int)";
using(SqlConnection konekcija = new SqlConnection(Konekcija.CnnMagacin))
{
try
{
int id = konekcija.QuerySingleOrDefault<int>(upit,p);
return id;
}
catch (System.Exception)
{
return -1;
}
}
}
这是我的第一个 post 所以欢迎每一个建议和批评,对变量名表示抱歉。
这两个版本的区别在于,您在工作版本中提供 Cena
作为整数值,但在非工作版本中提供字符串。
要在发出 AJAX 请求之前修复此调用 parseInt()
的值:
var proizvod = {
Naziv: naziv,
Cena: parseInt(cena, 10),
Opis: opis
}