2016-05-07 11 views
0

Ich habe einen Kendo Upload und einen Button und ich möchte eine Datei hochladen indem ich den Kendo Datei Upload benutze wenn ich auf den Button Upload klicke.Wie lade ich eine Datei auf Knopfdruck hoch mit Kendo Datei Upload

Wenn ich meine Aktionsmethode debuggen, gibt httppostefile null zurück.

Hier ist meine Aktionsmethode.

[HttpPost] 
     public ActionResult UploadHactAssesmentAttachment(IEnumerable<HttpPostedFileBase> Files) 
     { 
      TBL_ASST_HACTA_ATTACHMENT obj = new TBL_ASST_HACTA_ATTACHMENT(); 

      foreach (var file in Files) 
      { 
       if (file.ContentLength > 0) 
       { 
        var fileName = Path.GetFileName(file.FileName); 
        var path = Path.Combine(Server.MapPath("~/ProjectUploadedDocuments"), fileName); 
        obj.FilePath = path; 
        obj.CreatedDateTime = DateTime.Now; 
        obj.CreatedByID = Convert.ToInt32(Session["UserID"]); 
        dbcontext.TBL_ASST_HACTA_ATTACHMENT.Add(obj); 
        file.SaveAs(path); 
        dbcontext.SaveChanges(); 
       } 
      } 

      return RedirectToAction("Index"); 
     } 

VIEW

@using (Ajax.BeginForm("UploadHactAssesmentAttachment", "Partner", null, new AjaxOptions 
{ 
    HttpMethod = "POST", 
    InsertionMode = InsertionMode.Replace, 
    OnSuccess = "OnSuccessAttachment" 
})) 
{ 
<div class="row"> 
    <div class="col-lg-3"> 
     @Html.Label("key finding Add attachment:") 
    </div> 
    <div class="col-lg-3"> 
     @(Html.Kendo().Upload() 
      .Name("Files") 
     ) 

    </div> 
</div> 
    <div class="row"> 
     <div class="col-lg-3"></div> 
     <div class="col-lg-3"> 

      @Html.Kendo().Button().Name("btnAddattachment").Content("Add").HtmlAttributes(new { style = "width: 20%" }) 
     </div> 
    </div> 
+0

Sie können 'Ajax.BeginForm()' nicht zum Hochladen von Dateien verwenden. Wenn Sie Ajax verwenden möchten, müssen Sie 'FormData' verwenden. Verweisen [diese Antwort] (http://stackoverflow.com/questions/29293637/how-to-append-whole-set-of-model-to-formdata-and-obtain-it-in-mvc/29293681#29293681) –

Antwort

0

Dateien async Ihr keine Notwendigkeit laden zu wickeln @(Html.Kendo().Upload()) in form weil die Upload verwendet HTML5 File API (w3, wiki), auch für ältere vorgesehen Ausweich Kendo Team Browser. So ist der einfachste Weg:

<div class="row"> 
    <div class="col-lg-3"> 
     @(Html.Kendo().Upload() 
      .Name("files") 
      .Async(a => a 
       .Save("UploadHactAssesmentAttachment", "Upload") 
       .Remove("Remove", "Upload")//You need to implement it too 
       .AutoUpload(true) 
     ) 
    ) 
    </div> 
</div> 

Ich denke, Blick auf ihre docs könnte auch hilfreich sein.

Hoffe es hepls.

Verwandte Themen