Как обновить тег div в JavaScript с данными из модели для отправки формы asp.net mvc - PullRequest
0 голосов
/ 01 июля 2011

На моей странице есть тег формы, который отправляет на сервер, получает данные и перенаправляет на ту же страницу. Проблема в том, что тег div, который содержит данные с сервера, не обновляется. как это сделать в JavaScript

<% using (Html.BeginForm("Addfile", "uploadfile", FormMethod.Post, new
   {
       id = "uploadform",
       enctype = "multipart/form-data"

   }))
       { %>
<input type="file" id="addedFile" name="addedFile" /><br />
    <input type="submit" id="addfile" value="Addfile" />
    <div id="MyGrid">
  //data from the model(server side) filelist is not updating</div>

какой будет функция отправки формы javascript для обновления тега div с данными из модели.

и мой контроллер загрузки файлов для отправки сообщений имеют вид

[AcceptVerbs(HttpVerbs.Get)]
          public ActionResult Upload()
        {
            return View();
        }
 [AcceptVerbs(HttpVerbs.Post)]
        public ActionResult AddFile(HttpPostedFileBase addedFile)
        {
           static List<string> fileList = new List<string>();
           string filename = Path.GetFileName(addedFile.FileName);
            file.SaveAs(@"D:\Upload\" + filename);
            fileList.Add(filename);
            return("Upload",fileList);
}

спасибо,

Микаэл

1 Ответ

3 голосов
/ 01 июля 2011

В вашем методе действий после записи вы создаете новый список (fileList) каждый раз при загрузке файла, и независимо от того, сколько файлов вы загружаете, этот список будет содержать только одну запись в текущей настройке.Я хотел бы предложить сохранить список файлов в базу данных и получить его оттуда, когда вы хотите показать список в представлении.это может быть похоже на

[AcceptVerbs(HttpVerbs.Get)]
          public ActionResult Upload()
        {
            List<string> fileList = //retreive from db;  
            return View(fileList);
        }
 [AcceptVerbs(HttpVerbs.Post)]
        public ActionResult AddFile(HttpPostedFileBase addedFile)
        {

           string filename = Path.GetFileName(addedFile.FileName);
            file.SaveAs(@"D:\Upload\" + filename);
            //add file name in database
            return redirectToAction("Upload");
}

, в идеале вы должны всегда перенаправлять из вашего метода пост-действия, а не возвращать представление, если нет ошибок модели.В методе Get Action вы можете извлечь значения из базы данных и отобразить их в представлении.Вы также можете поместить некоторые параметры, такие как id, в оба ваших метода для сохранения и получения значений в базе данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...