我需要你的帮助。我用两个不同的表格创建了一个带有MVC的JQXGrid" Prodotti"和" Scheda"。我用这种方式从控制器加载实体框架的数据:
public JsonResult GetProducts()
{
try
{
var dbResult = db.PartnerProducts.ToList();
var products = from e in dbResult
select new
{
e.Id,
e.PartnerId,
e.Title,
e.Price,
e.Quantity,
e.Status,
e.DateCreated,
e.Photo,
e.ShortDescription,
e.LongDescription,
e.cat,
e.lotto,
e.nomeproduttore,
e.origine,
e.idcategoria,
e.apezzo,
e.pesomedio,
e.prezzoscontato,
e.IdSchedaProdotto,
e.Priority,
e.PartnerOwner,
e.Deperibile,
e.inbustati,
e.confezionati,
nomeCategoria = e.categoriaprodottopersonalizzato?.nome,
sottotitolo = e.SchedaProdotto?.Sottotitolo,
provenienza = e.SchedaProdotto?.Provenienza,
curiosita = e.SchedaProdotto?.Curiosita,
proprieta = e.SchedaProdotto?.Proprieta,
periodo = e.SchedaProdotto?.Periodo,
conservazione = e.SchedaProdotto?.Conservazione,
foto = e.SchedaProdotto?.Foto,
titolo = e.SchedaProdotto?.Titolo,
visibile = e.SchedaProdotto?.Visibile,
link = e.SchedaProdotto?.Link,
viaAerea = e.SchedaProdotto?.ViaAerea,
nome = e.SchedaProdotto?.Nome
};
}
return Json(products, JsonRequestBehavior.AllowGet);
}
我使用以下代码加载JQuery表中的所有数据:
datafields: [{ name: 'Id' },
{ name: 'PartnerId' },
{ name: 'Title' },
{ name: 'Price' },
{ name: 'Quantity' },
{ name: 'Status' },
{ name: 'DateCreated' },
{ name: 'Photo' },
{ name: 'ShortDescription' },
{ name: 'LongDescription' },
{ name: 'cat' },
{ name: 'lotto' },
{ name: 'nomeproduttore' },
{ name: 'origine' },
{ name: 'idcategoria' },
{ name: 'apezzo' },
{ name: 'pesomedio' },
{ name: 'prezzoscontato' },
{ name: 'IdSchedaProdotto' },
{ name: 'Priority' },
{ name: 'PartnerOwner' },
{ name: 'Deperibile' },
{ name: 'inbustati' },
{ name: 'confezionati' },
{ name: 'nomeCategoria' },
{ name: 'sottotitolo' },
{ name: 'provenienza' },
{ name: 'curiosita' },
{ name: 'proprieta' },
{ name: 'periodo' },
{ name: 'conservazione' },
{ name: 'foto' },
{ name: 'titolo' },
{ name: 'visibile' },
{ name: 'link' },
{ name: 'viaAerea' },
{ name: 'nome' }
数据负载运行良好。现在的问题是当我想添加新数据时......我用这个函数从列中读取数据:
addrow: function (rowid, rowdata, position, commit) {
// synchronize with the server - send insert command
// call commit with parameter true if the synchronization with the server is successful
// and with parameter false if the synchronization failed.
// you can pass additional argument to the commit callback which represents the new ID if it is generated from a DB.
var data = "add=true&Id=" + rowdata.Id + "&PartnerId=" + rowdata.PartnerId + "&Title=" + rowdata.Title + "&Price=" + rowdata.Price + "&Quantity=" + rowdata.Quantity + "&Status=" + rowdata.Status;
data = data + "&Photo=" + rowdata.Photo + "&cat=" + rowdata.cat + "&lotto=" + rowdata.lotto + "&origine=" + rowdata.origine + "&idcategoria=" + rowdata.idcategoria;
data = data + "&apezzo=" + rowdata.apezzo + "&pesomedio=" + rowdata.pesomedio + "&prezzoscontato=" + rowdata.prezzoscontato;
data = data + "&IdSchedaProdotto=" + rowdata.IdSchedaProdotto + "&Deperibile=" + rowdata.Deperibile + "&confezionati=" + rowdata.confezionati + "&nomeCategoria=" + rowdata.nomeCategoria;
data = data + "&provenienza=" + rowdata.provenienza + "&viaAerea=" + rowdata.viaAerea + "&periodo=" + rowdata.periodo + "&curiosita=" + rowdata.curiosita;
data = data + "&proprieta=" + rowdata.proprieta + "&conservazione=";
$.ajax({
dataType: 'json',
url: 'AddProducts',
data: data,
success: function (data, status, xhr) {
// update command is executed.
}
});
我想在服务器上实现这个功能:
public bool AddProducts(PartnerProduct product)
AddProducts
函数工作正常但在对象Product中我只能检索表Product中的值,例如title或price ...我如何保存表的Jquery值" scheda&#34 ;在这个服务器端函数中是空的吗?
例如我用
加载数据 titolo = e.SchedaProdotto?.Provenienza,
使用
将其传递到服务器端"&provenienza=" + rowdata.provenienza
但是服务器端的价值是' Scheda.Provenienza'是空的
请帮助我......非常重要
答案 0 :(得分:1)
免责声明: 这个答案可能无法解决问题,但我不得不将其作为答案发布,因为我没有足够的声誉来发表评论。
我首先想要你做的是定义AJAX请求类型。所以,你需要这个:
$.ajax({
type: 'POST', // or, type: 'GET', depending on your controller. If you ask me, POST is the right request type to use here, because you want to submit data.
dataType: 'json',
url: 'AddProducts', // in what controller is this function located? Is this the right path to the function?
data: data,
success: function (data, status, xhr) {
// update command is executed.
}
});
现在,第二个问题在controllers参数中,您期望接收PartnerProduct
模型,但是从AJAX您不会发送任何模型。换句话说,从AJAX发送object
,而C#不会在PartnerProduct
中转换它。由于这个原因,我会要求您查看以下链接,我认为这些链接可以解决您的问题:
如果这没有帮助,请在评论中ping我,这样我们就可以一步一步地看。