none
【ASP.NET】js动态生成的控件,在后台获取不到怎么办?+急急 RRS feed

  • 问题

  • JS代码如下:

    oNewNode.innerHTML = "&nbsp;&nbsp;<input type=file  id=file"+filecount+" onchange=perImg(this,"+filecount+",300000) runat=server >"+
             "<a href='#' id=href"+filecount+" onclick='delThis(this)'>删除</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"+
             "<br/>&nbsp;&nbsp;<img id=image"+filecount+" width=80 height=60 runat=server  />";

     

    后台代码:

    HttpFileCollection files = HttpContext.Current.Request.Files;

    调试时发现,files对象老是为空(未将对象引用到实例),我试了很多次都屡屡失败。请问高手为什么获取不到前台动态生成file控件呢?

     

    就连 HttpPostedFile file = Request.Files["file1"];来获取单独ID的控件也不行,到底是哪里出了问题?JS代码是调用外面的js文件。难道和这个有关系么?

    2010年3月24日 17:03

答案

  • 你好!

    你需要至少在页面上保存一个非动态生成的 file 控件且需要标志为 runat="server"。


    知识改变命运,奋斗成就人生!
    • 已标记为答案 jinwb1982 2010年3月25日 3:49
    • 取消答案标记 jinwb1982 2010年3月25日 3:51
    • 已标记为答案 jinwb1982 2010年3月25日 3:51
    • 取消答案标记 jinwb1982 2010年3月25日 3:51
    • 已标记为答案 jinwb1982 2010年3月25日 3:51
    2010年3月25日 3:30
    版主
  • 要想动态生成file控件服务器端的要在c#里做。

    html的可以用js动态生成,但form要添加:enctype="multipart/form-data",后台取值HttpFileCollection myFile = HttpContext.Current.Request.Files;

    • 已标记为答案 jinwb1982 2010年3月25日 3:51
    2010年3月25日 3:47
  • 谢谢你,经过发现事实并非如此,原来是由于,表单form缺少enctype="multipart/form-data" 声明 与生成的控件要添加name属性有关。感谢你得帮助
    • 已标记为答案 jinwb1982 2010年3月25日 3:49
    • 取消答案标记 jinwb1982 2010年3月25日 3:51
    • 已标记为答案 jinwb1982 2010年3月25日 3:51
    2010年3月25日 3:49

全部回复

  • 你好!

    你需要至少在页面上保存一个非动态生成的 file 控件且需要标志为 runat="server"。


    知识改变命运,奋斗成就人生!
    • 已标记为答案 jinwb1982 2010年3月25日 3:49
    • 取消答案标记 jinwb1982 2010年3月25日 3:51
    • 已标记为答案 jinwb1982 2010年3月25日 3:51
    • 取消答案标记 jinwb1982 2010年3月25日 3:51
    • 已标记为答案 jinwb1982 2010年3月25日 3:51
    2010年3月25日 3:30
    版主
  • 要想动态生成file控件服务器端的要在c#里做。

    html的可以用js动态生成,但form要添加:enctype="multipart/form-data",后台取值HttpFileCollection myFile = HttpContext.Current.Request.Files;

    • 已标记为答案 jinwb1982 2010年3月25日 3:51
    2010年3月25日 3:47
  • 谢谢你,经过发现事实并非如此,原来是由于,表单form缺少enctype="multipart/form-data" 声明 与生成的控件要添加name属性有关。感谢你得帮助
    • 已标记为答案 jinwb1982 2010年3月25日 3:49
    • 取消答案标记 jinwb1982 2010年3月25日 3:51
    • 已标记为答案 jinwb1982 2010年3月25日 3:51
    2010年3月25日 3:49
  • 谢谢你,经过发现事实并非如此,原来是由于,表单form缺少enctype="multipart/form-data" 声明 与生成的控件要添加name属性有关。感谢你得帮助

    你好!

    上面提到的方法是可行的。


    知识改变命运,奋斗成就人生!
    2010年3月26日 4:58
    版主