Binding HttpPostedFileBase using Ajax.BeginForm

前端 未结 4 541
星月不相逢
星月不相逢 2020-12-03 19:16

I have a form which binds a model and a file upload using the default binder for HttpPostedFileBase.

This works fine when using Html.BeginForm(). However, I wanted t

相关标签:
4条回答
  • 2020-12-03 19:40

    You cannot upload files with AJAX. One way to achieve this is to use a hidden iframe which will simulate an AJAX call and perform the actual file upload or use Flash. Here's a very nice jQuery Form plugin using a hidden iframe which is capable of transparently ajaxifying a form submission containing file fields.

    0 讨论(0)
  • 2020-12-03 19:52

    Yes I also agree. You can definately upload files using 'Ajax.BeginForm'.Add 'enctype = "multipart/form-data"' to the AjaxOptions object.

    0 讨论(0)
  • 2020-12-03 20:01

    It is possible, the answer is here:

    https://stackoverflow.com/a/13522052/1067149

    I did it myself and it's guaranteed it works.

    0 讨论(0)
  • 2020-12-03 20:01

    ADD id="file" in your tag input

    IN YOUR ACTIONRESULT PARAMETER HttpPostedFileBase 'file' name and view tag name should be same

            [HttpPost]
            [ValidateAntiForgeryToken]
            public ActionResult Create(tbl_products tbl_products,HttpPostedFileBase file)
            {
                if (ModelState.IsValid)
                {
                    tbl_products.phototype = file.ContentType;
                    tbl_products.photo =new byte[file.ContentLength ];
                    file.InputStream.Read(tbl_products.photo,0, file.ContentLength);
    
                    if(obj.insert(tbl_products))
                    {
                    return RedirectToAction("Index");
                    }
                    else
                    {
                        return new HttpStatusCodeResult(HttpStatusCode.Forbidden);
                    }   
                }
    
                return View(tbl_products);
            }
    

    IT WORKS FOR ME

    0 讨论(0)
提交回复
热议问题