1

我有一个带有一个视图的 MVC 项目,在这个视图中我有一个强烈的局部视图,它的类型是IEnumerable<Raja.DomainClasses.Entities.InvoiceItem>. 在我的局部视图里面是一个Telerik MVC网格。我使用 ajax 来保存这个网格的每个项目。正如您在此图像中看到的,用户可以单击保存,这会将 json 的行信息传递给createinvoiceitem控制器​​发票中的操作。

如果此保险箱的结果成功,我希望已保存的网格行将其颜色更改为绿色,否则我希望此行将其颜色更改为红色,以便用户知道哪个已保存以及哪个中止了保存.

我怎么知道这一行是否保存在局部视图中?我view-bag在我的控制器中使用但view bag在部分视图中看不到,我使用session但我看不到session. 在此处输入图像描述 这是我的局部视图中保存按钮的功能

function SaveRow(index) {
            alert($("#Invoice_InvoiceNumber").val());
            InvoiceItemValidation();
            var indexvalue1 = $('#InvoiceItemGrid > table > tbody > tr td').filter(function () {
                return $.trim($(this).text()) == index;
            }).parent().index();
            indexvalue = indexvalue1 + 1;
            var invoiceitem;        
            invoiceitem = ({

                InvoiceNumber: $("#Invoice_InvoiceNumber").val(),
                SparePartCode: $('#InvoiceItemGrid > table > tbody > tr:nth-child(' + indexvalue + ') td:nth-child(2)').text(),
                Title: $('#InvoiceItemGrid > table > tbody > tr:nth-child(' + indexvalue + ') td:nth-child(3)').text(),
                SerialNumber: $('#InvoiceItemGrid > table > tbody > tr:nth-child(' + indexvalue + ') td:nth-child(4)').text(),
                Project: $('#InvoiceItemGrid > table > tbody > tr:nth-child(' + indexvalue + ') td:nth-child(5) input[type=number]').val(),
                PartCount: $('#InvoiceItemGrid > table > tbody > tr:nth-child(' + indexvalue + ') td:nth-child(6) input[type=number]').val(),
                Unit: $('#InvoiceItemGrid > table > tbody > tr:nth-child(' + indexvalue + ') td:nth-child(7) input[type=text]').val(),
                Descr: $('#InvoiceItemGrid > table > tbody > tr:nth-child(' + indexvalue + ') td:nth-child(8) input[type=text]').val(),
                FaultyReason: $('#FaultyResult').val(),
                ShamsiPickupDate: $('#date_input_PickupDate').val(),
                WagonNumber: $('#InvoiceItem_PartLocation1_WagonNumber').val(),
                Train: $('#TrainCode').val(),
                MasterApplier: $('#MasterApplier').val(),
                Troubleshooter: $('#Troubleshooter').val(),
            });
            $.ajax({
                url: '/Invoice/InvoiceItemCreate',
                contentType: 'application/json; charset=utf-8',
                type: 'POST',
                dataType: 'json',
                data: JSON.stringify(invoiceitem)
            })
            .success(function (result) {
                // Display the section contents.
                window.location.href = result.Url;
                alert('')
            });        
        }

这是createinvoice动作:

   public ActionResult InvoiceItemCreate(InvoiceItemModel invoiceitem)
    {
        ViewBag.Result ="true";            
        ViewBag.Aname = "PartialViewInvoiceItem";
        ViewBag.Cname = "Invoice";

        ViewBag.FaultyResult = _baseDataServise.GetList()
                                         .Where(u => u.BaseDataType1.Title == "نوع خرابی")
                                         .OrderBy(u => u.Title)
                                         .Select(o => new SelectListItem { Text = o.Title, Value = o.Id.ToString() })
                                         .AsEnumerable();


        ViewBag.Warehouses = _WarehouseService.GetList()
                                       .OrderBy(o => o.Title)
                                       .Select(o => new SelectListItem { Text = o.Title, Value = o.Id.ToString() })
                                       .AsEnumerable();

        DBResult _DBResult = _InvoiceItemService.AddInvoiceItem(invoiceitem);

        string ItemName = invoiceitem.InvoiceNumber+"_"+invoiceitem.SparePartCode;
        Session["ItemName"]=_DBResult.IsOK;
        return View("CreateFaultyInput",new InvoiceVM()); 

    }
4

0 回答 0