圆滚滚的胖狸
2017-08-23 06:25
采纳率: 100%
浏览 3.2k

求助ajax执行后,会自动刷新页面,该如何阻止?

asp.net mvc
前台代码:

 <html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>TestUpload</title>
    <script type="text/javascript" src="~/Scripts/jquery-1.10.2.min.js"></script>
</head>
<body>
    <div>
        <textarea id="txt"></textarea>
        <form id="uploadForm" action="Upload/TestAjax" method="post" enctype="multipart/form-data">
            <input id="File1" name="fileupload" accept="image/gif, image/jpeg" multiple="multiple" type="file" value="" />
            <input id="btn" type="button" value="上传" />
        </form>

    </div>
</body>
</html>
<script type="text/javascript">
    $(function () {
        $("#btn").click(function () {
            var formData = new FormData($("#uploadForm")[0]);
            //var formData = $("#uploadForm");
            $.ajax({
                url: "/Upload/TestAjax",
                data: formData,
                type: "POST",
                cache: false,
                async: true,
                contentType: false,
                processData: false,
                success: function (data) {
                    console.log(data);

                },
                error: function (data) {
                    console.log(data);
                },
            });            
            return false;

        });
    });
</script>

后台代码

  public ActionResult TestUpload()
        {
            return View();
        }

        [HttpPost]
        public ActionResult TestAjax()
        {

            if (Request.Files.Count > 0)
            {
                if (Request.Files.Count == 1)
                {
                    HttpPostedFileBase file = Request.Files[0];
                    if (file.ContentLength > 0)
                    {
                        string title = string.Empty;
                        title = DateTime.Now.Ticks.ToString() + Path.GetExtension(file.FileName);
                        string path = "/upload/" + DateTime.Now.ToString("yyyyMMdd")+"/" + title;
                        path = System.Web.HttpContext.Current.Server.MapPath(path);
                        file.SaveAs(path);
                        return Json(new { status = true, url = path });
                    }
                }
                else
                {
                    string[] urllist = new string[Request.Files.Count];
                    for (int i = 0; i < Request.Files.Count; i++)
                    {
                        HttpPostedFileBase file = Request.Files[i];
                        if (file.ContentLength > 0)
                        {
                            string title = string.Empty;
                            title = DateTime.Now.Ticks.ToString() +Path.GetExtension(file.FileName);
                            string path = "/upload/" + DateTime.Now.ToString("yyyyMMdd") + "/" + title;
                            path = System.Web.HttpContext.Current.Server.MapPath(path);
                            file.SaveAs(path);
                            urllist[i] = path;
                        }
                    }
                    return Json(new { status = true, url = urllist });
                }

            }
            else
            {
                return Json(new { status = false, url = "", msg = "没有文件" });
            }



            return Json(new { status = false, url = "", msg = "" });



        }


其实就是一个简单的ajax文件上传。我的要求是,执行成功不要刷新页面。
但是很奇怪的是,执行不成功时,代码不刷新,一旦执行成功就自动给我刷新了!!!跪求各位大大
开发环境WIN10+VS2015

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

9条回答 默认 最新

  • 圆滚滚的胖狸 2017-08-23 07:22
    已采纳

    我找到了解决方法,感谢各位。
    解决方法在web.config中加入

    点赞 打赏 评论
  • 发财J 2017-08-23 07:19

    别用button ,用span 绑定一个点击事件就行, button他有提交表单的作用 ,相当于提交了两次 ajax 一次 button又提交了一次

    点赞 1 打赏 评论
  • cloudyzhao 2017-08-23 06:41

    你debug到success: function (data) {
    console.log(data);这里看看

    点赞 打赏 评论
  • Qurite 2017-08-23 06:43

    async: false

    点赞 打赏 评论
  • spsk丶fy 2017-08-23 06:46

    async: false,,异步加载

    点赞 打赏 评论
  • 没看到代码有任何导致刷新的代码,你确认就这些代码?

    点赞 打赏 评论
  • 圆滚滚的胖狸 2017-08-23 06:52

    图片说明

    点赞 打赏 评论
  • 紫夜清风 2017-08-23 07:12
        http://bbs.csdn.net/topics/390786750 建议你看看这个
    
    点赞 打赏 评论
  • 大事龙 2017-08-23 07:24

    把 form 去掉,或者设置 form 的 onsubmit='return false';

    点赞 打赏 评论

相关推荐