ThickBox - 内部更新而不重定向

发布于 2024-10-10 11:02:45 字数 1997 浏览 6 评论 0 原文

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) { //……………………”/>

ASP.NET MVC and jQuery ThickBox.
I show some content in ThickBox. It includes file upload form

The view 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 %>" />                //................

After file upload I redirect to /upload/multi-media action and content shows in normal window, not in ThickBox.

[ActionName("multi-media"), HttpPost]
public ActionResult MultiMedia(HttpPostedFileBase file)
{          
    if (file.ContentLength > 0)
    {
        file.SaveAs(GenerateNewFileName(fullFileName));
        return View("multi-media", model);
    }
}

How can I stay into ThickBox after file upload? I need show content in ThickBox all the time, even after the file upload.

UPDATE: The ajax file upload. Anyway reload ThickBox. Why?

The view multi-media.apsx

     <div id="mydiv">
        <% Html.RenderPartial("MultiMediaDetails", Model); %> </div>

MultiMediaDetails.ascx

    <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<List<FileInfo>>"%>
    <%@ Import Namespace="System.IO" %>
 <% using (Ajax.BeginForm("multi-media", "upload" ,
    new AjaxOptions { UpdateTargetId = "mydiv", HttpMethod = "Post"   }, new { enctype = "multipart/form-data" }))
{ %>

  <label for="file">File name:</label><br />
  <input type="file" name="file" id="file" /> 
  <input type="submit" value="Upload" />

 <% }%>

 <% if (Model.Count > 0)
   {
     foreach (FileInfo mediaFile in Model)
      {
          //...................  .............."/>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

宛菡 2024-10-17 11:02:45

您无法通过 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文