【问题标题】:Pass parameters to server side with asyncfileupload (ajaxcontroltoolkit)使用 asyncfileupload (ajaxcontroltoolkit) 将参数传递到服务器端
【发布时间】:2013-05-27 14:12:44
【问题描述】:

我使用 ASP.NET,我需要一种简单的方法来异步上传文件。所以我尝试使用 asyncfileupload(Ajax 控制工具包),但我还需要将参数传递给服务器端。我怎样才能做到这一点 ?谢谢。

这是我的代码:

在客户端:

<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</asp:ToolkitScriptManager>
 <asp:AsyncFileUpload ID="afuMedia" runat="server" UploaderStyle="Modern" OnUploadedComplete="afuMedia_UploadedComplete" />

在服务器端:

  protected void afuMedia_UploadedComplete(object sender, AsyncFileUploadEventArgs e)
  {
      //int id = int.Parse(Request.QueryString["id"]);
      string mediaPath = ConfigurationParameters.MediaPath;
      string filePath = CurrentBrand.BrandCode + "\\" + CurrentCulture.CultureCode + "\\" + "highlights-" + id;
      string physicalPath = Path.Combine(MapPath("~/" + mediaPath), filePath);

      afuMedia.SaveAs(physicalPath);
  }

【问题讨论】:

  • 阅读此asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/… 阅读并让我知道您是否仍需要帮助
  • @skhurams,我做到了,但无法将参数传递到服务器端。
  • 参数有哪些解释?
  • 一个标识表行的id
  • 让我知道这是否有效,我已经回答了这个问题

标签: asp.net ajax ajaxcontroltoolkit


【解决方案1】:

通过OnClientUploadStarted 属性添加用于上传开始的客户端处理程序,并按如下方式使用它:

<asp:AsyncFileUpload ID="afuMedia" runat="server" UploaderStyle="Modern"
    OnUploadedComplete="afuMedia_UploadedComplete" 
    OnClientUploadStarted="afuMedia_OnClientUploadStarted" />

function afuMedia_OnClientUploadStarted(sender, args){
    var id = 123;
    var url = sender.get_postBackUrl();
    url += url.indexOf("?") === -1 ? "?" : "&";
    url += ("id=" + id.toString());
    sender.set_postBackUrl(url);
}

使用此代码,您需要自己做的就是提供正确的 id 值;

【讨论】:

  • 使用上述代码的查询字符串数据集在服务器端 UploadComplete 事件中似乎不可用。我使用的是 2013 年 6 月发布的版本。
  • 很好,它可以工作,但唯一的问题是,当有完整的页面回发时,URL 中附加的任何内容都会显示在地址栏中。
猜你喜欢
  • 1970-01-01
  • 2016-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-07
  • 1970-01-01
相关资源
最近更新 更多