2017-01-09 3 views
0

Я использую @ (Html.Kendo(). Upload() в моем приложении. Мне нужно взять 5 лучших записей из csv и связать их с сеткой kendo в javascript. считывая информацию о файле из httppostedfilebase и возвращая 5 лучших записей в качестве результата JSON в методе сохранения действий. В случае успеха загрузки в javascript я привязываю сетку.KendoUpload FileUpload httppostedfile не работает для отправки

Теперь на отправке, я должен снова прочитать файл. i ' m пытается прочитать информацию о файле из httppostedfilebase, но это значение равно null, потому что метод действия сохранения возвращает JSON. Если я изменяю метод действия сохранения для просмотра, я просто читаю httpostedfilebase при отправке.

Есть ли обходной путь ?

Спасибо!

+0

Предоставить несколько примеров кода –

ответ

0
Code Sample: 

view 
---- 

@(Html.Kendo().Upload()    
          .Name("uploadTemplate") 
          .Messages(m => m.Select("")) 
          .ShowFileList(true) 
          .Async(a => a 
           .Save("UploadData", "Lead") 
           .AutoUpload(true) 
          ) 
          .Multiple(false) 
          .Events(events => events 
          .Select(UploadFileControl.onSelect") 
          .Success("UploadFileControl.onSuccess") 
          .Upload("UploadFileControl.onUpload") 
          ) 
         ) 


form 
---- 
    @using (Html.BeginForm("", "", FormMethod.Post, new { id = "LoadForm", enctype = "multipart/form-data" })) 

js 
-- 

function SubmitForm(val) { 


       var url = '@Url.Action("fileSubmit", Test")'; 
        console.log(url); 
        $.ajax({ 
         url: url, 
         type: 'POST', 
         data: $('form#LoadForm').serialize(), 
         async: false, 
         success: function (data) { 
          alert("success"); 
         }, 

         error: function (data, xhr, error) { 
          alert("error"); 
         } 
        }); 
       } 


onSuccess(e) 

{ var grid = $("#grid").data("kendoGrid"); 
     var origData = e.response; 
     grid.dataSource.data(origData); 
} 

document ready 
-------------- 

var grid = $("#grid").kendoGrid({ 
         groupable: false, 
         scrollable: true, 
         columnMenu: true 
        }).data("kendoGrid"); 


code behind 
----------- 

public JsonResult UploadData(IEnumerable<HttpPostedFileBase> uploadTemplate, FileModel fileModel) 
     { 

      Stream inputFileStream = new MemoryStream(); 
      string[] result = new string[] { }; 

      if (uploadOnly) 
      { 
       if (uploadTemplate != null) 
       { 
        try 
        { 
         foreach (var file in uploadTemplate) 
         { 
          inputFileStream = file.InputStream; 
      } 

//       GET TOP N ROWS AND ASSIGN TO parentRow 

       return Json(parentRow, JsonRequestBehavior.AllowGet);    
      }    
      return null; 
     } 

public ActionResult fileSubmit(IEnumerable<HttpPostedFileBase> uploadTemplate, FileModel fileModel) 
     { 
//retrieve uploadTemplate here (no values in uploadTemplate.) 
} 
Смежные вопросы