ThickBox - 内部更新而不重定向
ASP.NET MVC 和 jQuery ThickBox。 我在 ThickBox 中显示了一些内容。它包括文件上传表单
视图 multi-media.apsx
<form action="/upload/multi-media" method="post" enctype="multipart/form-data">
<label for="file">File name:</label><br />
<input type="file" name="file" id="file" /><br />
<input type="submit" value="Upload" />
</form>
<% if (Model.Count > 0) { %>
<% foreach (FileInfo mediaFile in Model) { %>
<img width="100px" height="100px"
src="<%:ResolveUrl("~/audio.png") %>" border="0" alt="<%: mediaFile.Name %>" /> //................
文件上传后,我重定向到 /upload/multimedia 操作,内容显示在正常窗口中,而不是在 ThickBox 中。
[ActionName("multi-media"), HttpPost]
public ActionResult MultiMedia(HttpPostedFileBase file)
{
if (file.ContentLength > 0)
{
file.SaveAs(GenerateNewFileName(fullFileName));
return View("multi-media", model);
}
}
文件上传后如何留在 ThickBox 中?我需要始终在 ThickBox 中显示内容,即使在文件上传之后也是如此。
更新: ajax 文件上传。不管怎样,重新加载 ThickBox。为什么?
视图multi-media.apsx
<% Html.RenderPartial("MultiMediaDetails", Model); %>
多媒体详细信息.ascx
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl
>"%> <%@ 导入命名空间="System.IO" %> <% 使用 (Ajax.BeginForm("多媒体", "上传" , 新的 AjaxOptions { UpdateTargetId = "mydiv", HttpMethod = "Post" }, new { enctype = "multipart/form-data" })) {%> <标签=“文件”>文件名:
<输入类型=“文件”名称=“文件”id=“文件”/> <输入类型=“提交”值=“上传”/> <% }%> <% if (Model.Count > 0) { foreach(模型中的 FileInfo mediaFile) { //……………………”/>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您无法通过 Ajax 上传 HTML 文件,因此避免页面重新加载的唯一方法是将上传器放置在
iframe
中或使用 Flash 上传器(如 SWFUpload)。You cannot do an HTML file upload through Ajax, so the only way to avoid a page reload is to place the uploader in an
iframe
or use a Flash uploader like SWFUpload.