使用JQuery

时间:2016-01-10 22:30:18

标签: jquery asp.net-mvc

我需要你的帮助。我用两个不同的表格创建了一个带有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'是空的

请帮助我......非常重要

1 个答案:

答案 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我,这样我们就可以一步一步地看。