Как заставить действие контроллера выполнить после загрузки? - PullRequest
0 голосов
/ 20 октября 2011

Я не понимаю деталей того, что происходит за кулисами с MVC3 и Uploadify. Мне нужно разрешить странице ниже загружать несколько файлов. Это работает до сих пор. Я могу загружать файлы, они сохраняются на сервере. Проблема в том, что мне нужно перезагрузить страницу со списком загруженных файлов. Это будет похоже на обратную передачу в веб-формах asp.net.

@model Tangible.Models.UploadViewModel

        <input id="uploadfile" name="uploadfile" type="file" class="uploadify"  />

The template provided outlines the upload headings and format for Disposed Assets, Leased, Loaned, Rented, and Business Assets. 

The files must be uploaded in Microsoft Excel format following the templates provided. Each template must be a separate worksheet within the Excel file being uploaded. Prior to uploading, please review the template in Excel format which requires all headings be located in row one. Do not use commas in numeric fields but the decimal place character “.” is required when indicating cents. If you have any questions or concerns regarding the format please contact our Tangible Personal Property Department at 941.861.8291.

Note: Summary schedule item 21.- Pollution Control Equipment must be accompanied by the current DEP certificate for the reported equipment. (Please include an upload for a DEP Certificate)



        <script type="text/javascript">
            $(document).ready(
            function () {
            @{ var auth = Request.Cookies[FormsAuthentication.FormsCookieName] == null ? string.Empty : Request.Cookies[FormsAuthentication.FormsCookieName].Value;}
                var auth = "@auth";
                var ASPSESSID = "@Session.SessionID";                

                $(".uploadify").uploadify({
                    'uploader': '@Url.Content("~/Scripts/uploadify.swf")',
                    'cancelImg': '@Url.Content("~/Images/cancel.png")',
                    'buttonText': 'Upload',
                    'script': '@Url.Content("~/Wizard/Upload")',
                    'fileDesc': 'Files',
                    'fileExt': '*.*',
                    'auto': true,
                    'scriptData': { ASPSESSID: ASPSESSID, AUTHID: auth}
                });
            }
        );

            </script>

- Действие контроллера: необходимо каким-то образом выполнить последний шаг после загрузки всех файлов в обратную передачу

  [HttpPost]
        public ActionResult Upload(HttpPostedFileBase FileData)
        {
            var saveLocation = Path.Combine(Server.MapPath("\\"), "returns\\" + DR405Profile.CurrentUser.TangiblePropertyId);
            System.IO.Directory.CreateDirectory(saveLocation);
            FileData.SaveAs(Path.Combine(saveLocation, FileData.FileName));
            ViewData["UploadStatus"] = String.Format("File name: {0}, {1}Kb Uploaded Successfully.", FileData.FileName, (int)FileData.ContentLength / 1024);
            return View();
        }

1 Ответ

1 голос
/ 20 октября 2011

Вы можете подписаться на событие onAllComplete на клиенте и делать там все, что хотите. Например, вы можете перезагрузить текущий URL, отправить запрос AJAX, чтобы обновить только часть URL, ... Изучите документацию , вы можете найти интересные опции и события для подписки.

...