Я новичок в MVC3 и все еще учусь.Я пытаюсь написать приложение (MVC3 с Razor), которое позволяет пользователю выбирать файлы и загружать / сохранять.Во время загрузки / сохранения я хочу просто показать «ждать» текст как частичное представление.У меня проблема, так как частичное представление загружается, как только веб-приложение запускается, и я получил ошибку от HomeController - метод [HTtpPost] Wait, так как он не может отследить список файлов в задании объекта.Конечно, список файлов будет заполнен после загрузки.Я не знаю, как решить эту проблему, и мне нужна ваша помощь.Заранее спасибо.
Мой HomeController.cs :
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult UploadFile(IEnumerable<HttpPostedFileBase> attachments)
{
foreach ( var file in attachments )
{
// do something
}
return RedirectToAction("Wait");
}
public ActionResult Wait()
{
// do something
ViewBag.Message = "Wait...";
return View();
}
[HttpPost]
public ActionResult Wait(FormCollection formCollection)
{
Work job = MvcApplication.GetWork();
if ( job.Files.Any() )
{
return RedirectToAction("SubmitWork");
}
else
{
return View();
}
}
Просмотр Index.cshtml :
@{
ViewBag.Title = "FirstTry";
}
<p>
<div id="AddFiles">
@Html.Partial("_AddFiles")
</div>
</p>
<div id ="Wait">
@Html.Partial("_Wait")
</div>
Частичное представление _Wait.cshtml :
@{
ViewBag.Title = "Wait...";
}
@ViewBag.Message
@using ( Html.BeginForm("Wait", "Home", FormMethod.Post, new
{
id = "waitform"
}) )
{
}
<script type="text/javascript">
window.setTimeout("document.getElementById('waitform').submit()", 1000);
</script>
Частичное представление _AddFiles.cshtml :
@using ( Html.BeginForm("UploadFile", "Home", FormMethod.Post, new{id = "uploadForm", enctype = "multipart/form-data"}) )
{
@(Html.Telerik().Upload().Name("attachments").Multiple(true)
.Async(async => async.AutoUpload(true) )
)
<input type="submit" value="Send" class="t-button" />
<input type="reset" value="Reset" class="t-button" />
}