当前位置: 首页 > 知识库问答 >
问题:

将jquery ajax中的文件上载到ASP.NET,但结果json失败

汤玉宸
2023-03-14

我的步骤:第一步。上传一个文件到服务器步骤2。服务器获取文件并将其保存到存储步骤3。服务器将结果(成功或失败)返回给客户端

var data = new FormData();
data.append("file", document.getElementById('file').files[0]);
data.append("id",$('#saveClassID').val());                

$.ajax(
       {
           url: uploadFile,
           data: data,  //
           type: 'post',
           async: false,    
           contentType: false,               
           dataType: 'json',
           processData: false,
           success: function (data) {                   
               if (data.status == "OK") {                      
                   alert('success');
               }
               else {
                   alert(fail);
               }
           },
           error: function(jqXHR, textStatus, errorThrown) {
               console.log(textStatus, errorThrown);
           }
       });
[HttpPost]
    public ActionResult uploadFile()
    {
        HttpPostedFileBase file = (HttpPostedFileBase)Request.Files["file"];
        int save_id = Convert.ToInt32(Request.Form["id"].ToString());

        Result result = new Result();
        if (file != null)
        {
            if (file.ContentLength > 0)
            {
              //savedata, and get result  public Result saveData(file,id)
                  result = saveData(file,id);           
            }
            else
            {
                    result.msg="error";
                    result.staut="fail";
            }
        else
        {
             result.msg="no file";
            result.status="fail";
        }
        return Json(result, JsonRequestBehavior.AllowGet);

   }

   public class Result
   {
        public string status;
        public string msg;         
   }

共有1个答案

薛华容
2023-03-14

试试看

return Json(new {result}, JsonRequestBehavior.AllowGet); 

添加Result属性后,不要像@Stephen Muecke提到的那样使用字段(带有{get;set;})

 类似资料:
  • 我正在尝试使用Struts 2和jQuery构建Web应用程序。 在改变下拉列表时,我需要从数据库中获取详细信息。在我的< code>struts.xml配置中,我将方法和操作定义如下: 当我在所有相应位置进行更改后执行应用程序时,请求被传递给 类和 DAO 方法,并且控件成功返回到屏幕。但是返回的数据在屏幕上不可用,我收到一条错误消息: url…404未在jQuery中找到(匿名函数)ajax。

  • 问题内容: 我可以返回还包含渲染视图的Json结果吗? 我需要它来返回提交的表单的新ID及其HTML和其他一些属性。 当我需要从Json对象内的一个动作返回两个(或多个)视图结果时,这也可能会有所帮助。 谢谢! 问题答案: 您还可以将PartialViewResult呈现为字符串,然后通过JSON将该字符串传递给视图,并使用jQuery在页面中呈现。 您可以在这篇文章中看到:http : //ww

  • 这是im可以使用Python3通过API访问的数据预览。 我能够使用json.dumps(variablename)将其转储并使其成为一个json对象,但如何将其保存为一个json文件呢?

  • 问题内容: 我试图将我的网站从基于XML的配置文件迁移到基于JSON的配置文件。有没有一种方法可以加载文件,使其变成对象?我一直在搜索网络,但找不到。我已经将文件转换并另存为。我宁愿不使用第3方库。 问题答案: 您 确实 应该使用已建立的库,例如Newtonsoft.Json(甚至Microsoft都使用MVC和WebAPI等框架),或者.NET的内置JavascriptSerializer。 这

  • 问题内容: 我正在尝试将.json文件加载到javascript中的变量中,但无法正常工作。这可能只是一个小错误,但我找不到它。 当我使用静态数据时,一切工作正常: 我把一切的在一个文件,并试图以加载到本地JavaScript变量作为解释在这里:负载JSON转换成变量。 我使用Chrome调试器运行它,它总是告诉我该变量的值为。该文件与调用它的.js文件位于同一目录中。 我错过了什么? 问题答案:

  • 我想加载(要求)一个包含json模式的文件夹,这些模式具有基于其文件的引用。 换句话说,我有 并在同一文件夹中的另一个文件中: 这些模式在sperate文件中,现在应该加载到JS中,以便针对json对象进行验证。但是,文件夹内的引用应该仍然有效。 这就是为什么我的问题是,是否以及如何能够加载一个装满json文件的文件夹,而不需要中断引用。 这个库将使用这些模式来验证json对象:https://g