2014-01-31 6 views
0

Я делаю мой проект в MVCсодержания ViewBag не отображается, когда страница перезарядка

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

public ActionResult UploadFile(HttpPostedFileBase file) 
    { 
     if (ModelState.IsValid) 
     { 
      if (file == null) { ModelState.AddModelError("File", "Please Upload Your file"); } 
      else if (file.ContentLength > 0) 
      { 
       ................. 
       else 
       { //Excel file copied temporarily to temp folder 
        var filename = Guid.NewGuid().ToString() + Path.GetExtension(file.FileName); 
        var path = Path.Combine(Server.MapPath("~/App_Data/Uploads/"), filename); 
        file.SaveAs(path); 
        ModelState.Clear(); 
        ViewBag.Message = "File uploaded successfully"; 

       } 
      } 
     } 
     return RedirectToAction("UploadSTR", "Upload"); 
    } 

и мой взгляд

 @using (Html.BeginForm("UploadFile", "Upload", FormMethod.Post, new { enctype = "multipart/form-data" })) 
{ 
     File Path put type="file" name="file" id="file" /> 
     <input type="submit" name="submit" value="Upload" id="btn" /> 
} 
<p> Message:@ViewBag.Message</p> 

моим проблема заключается в том, что после отправки, файл загружается и возвращается на ту же страницу. Но ViewBag.Message = «Файл загружен успешно» на моем экране не показан

ответ

0

Если вы используете модель представления, вы можете добавить сообщение в виде скрытой формы с помощью вспомогательного помощника Html.HiddenFor() на ваш взгляд. Таким образом, значение будет возвращено в модель при отправке формы. Вероятно, вы не получите необходимую функциональность, используя ViewBag.

ViewBag имеет определенные виды использования, где это выгодно использовать, например, для настройки названия страницы в макете. Но в целом ViewBag - это элемент уровня новичка, который, вероятно, должен выглядеть в сторону отказа от предпочтений моделей взглядов, чтобы использовать мощные функции привязки модели автоматического просмотра MVC.

Возможно, есть пробег через MVC Music Store example или Google для других примеров использования моделей представления в ASP.NET MVC.

0

Вы не можете передавать данные через ViewBag (и ViewData) во время перенаправления, вам необходимо избежать перенаправления или использовать TempData. О TempData вы можете прочитать здесь ViewBag, ViewData and TempData.

0

ViewBag не пережит. Вместо этого используйте TempData.

Смежные вопросы