无法将 .net 5 mvc 中的 jsonresult 中的两个参数返回到 ajax

Posted

技术标签:

【中文标题】无法将 .net 5 mvc 中的 jsonresult 中的两个参数返回到 ajax【英文标题】:failed to return two parameters from jsonresult in .net 5 mvc to ajax 【发布时间】:2022-01-04 22:38:24 【问题描述】:

我在将 c#.net 5 中的返回 json 的两个参数结果返回到 ajax 时遇到问题。 ajax无法读取返回结果的地方

我有html代码

<button id="DELETE" onclick="ConfirmDelete(@item.Id)" class="btn btn-danger btn-sm">Delete</button>

jquery 代码

function ConfirmDelete(id) 
        Swal.fire(
            icon:'question',
            title: 'are you sure delete it?',
            showCancelButton: true,
            confirmButtonText: 'Ya',
            confirmButtonColor: '#d33',
            cancelButtonText: 'Tidak'
        ).then((result) => 
            if (result.isConfirmed) 
                $.ajax(
                    type: 'POST',
                    url: '@Url.Content("Latihan/Delete")',
                    data:  Id: id ,
                    dataType: "json",
                    success: function (data) 
                        if (data.Isuccess == true) 
                            Swal.fire(
                                icon: 'success',
                                title: 'Delete Success',
                                text: '',
                                confirmButtonText: 'Ok'
                            ).then((result) => 
                                if (result.isConfirmed) 
                                    location.reload();
                                
                            );
                        
                        else 
                            Swal.fire(
                                icon: 'error',
                                title: 'Error Found',
                                text: data,
                                confirmButtonText: 'Ok'
                            ).then((result) => 
                                if (result.isConfirmed) 
                                    location.reload();
                                
                            );    
                            
                        
                    ,
                    error: function (data) 
                        Swal.fire(
                            icon: 'error',
                            title: 'Unknown Error',
                            text: 'Delete Failed',
                            confirmButtonText: 'Ok'
                        ).then((result) => 
                            if (result.isConfirmed) 
                                location.reload();
                            
                        );    
                        
                    
                );

            

        )
    ;

控制器

[HttpPost]
        public async Task<JsonResult> Delete(int? id)
        
            List<string> msgerror = new List<string>();
            bool result = false;
            try
            
                if (id == null || id < 0)
                
                    
                    msgerror.Add("Data cannot be null");
                
                else
                
                    var LatihanDelete = await _context.TB_BIODATA.FirstOrDefaultAsync(e => e.Id == id);

                    if (LatihanDelete == null)
                    
                        msgerror.Add("Data not found");
                    
                    else
                    
                        //_context.TB_BIODATA.Remove(LatihanDelete);
                        //await _context.SaveChangesAsync();

                       result = true;
                       
                    
                
            
            catch (Exception e)
            
                msgerror.Add("Error Exception : " + e.Message);
            

           return Json(newIsuccess = result, MessageError = msgerror);
        

但是如果我只传递一个参数,那么在ajax中可以很好地读取返回结果

控制器

return Json("Success");

jquery 代码

success: function (data) 
                        if (data == "Success") 
                            Swal.fire(
                                icon: 'success',
                                title: 'Delete Success',
                                text: '',
                                confirmButtonText: 'Ok'
                            ).then((result) => 
                                if (result.isConfirmed) 
                                    location.reload();
                                
                            );
                        

任何人都可以帮助为什么这是不同的,我应该解决什么?谢谢

【问题讨论】:

【参考方案1】:

试试这个

return new JsonResult( new IsSuccess = result, MessageError = msgerror );

【讨论】:

以上是关于无法将 .net 5 mvc 中的 jsonresult 中的两个参数返回到 ajax的主要内容,如果未能解决你的问题,请参考以下文章

无法将 JSON 数据发送到 asp.net MVC 控制器中的另一个操作

将文件夹添加到 ASP.net MVC 5 站点中的所有 URL

无法将值传递给 mvc 5 中的内部类属性

无法让 ELMAH 在 IIS7.5 上与 ASP.NET MVC2 一起使用

Asp.net MVC 4 / 5 中的分页

如果asp.net mvc3中的大小超过4mb,则无法上传文件[重复]