.net MVC借助Iframe实现无刷新上传文件

html:

<div id="uploadwindow" style="display: none;">

    <form action="/ShopActivitys/ImportActivityItems" id="form1" name="form1" enctype="multipart/form-data" method="post" target="hidden_frame">

        <table style="width: 300px;">

            <tr>

                <td style="width: 80px; display: block;">选择文件:</td>

                <td>

                    <input type="file" id="file" name="activityitemsfile" />

                </td>

            </tr>

        </table>

        <input type="submit" value="上传文件" />

        <iframe name='hidden_frame' id="hidden_frame" style='display: none'></iframe>

    </form>

</div>

CallBack函数:

var UploadFun = {

    CallBack: function (msg) {

        $.messager.alert('上传文件', msg, 'info');



    }

};

后台处理:

    public void ImportActivityItems()

        {

            string error = "导入成功";

            try

            {

                var f = Request.Files["activityitemsfile"];



                var fpath = Server.MapPath("/Upload/活动链接数据/");

                if (!Directory.Exists(fpath))

                    Directory.CreateDirectory(fpath);

                string fullfilename = fpath + DateTime.Now.ToFileTime() + f.FileName;

                f.SaveAs(fullfilename);

            }

            catch (Exception ex)

            {

                Logger.Error(ex.ToString());

                error = "导入过程中发生错误,请重试";

            }

            Response.Write("<script type=\"text/javascript\"> parent.UploadFun.CallBack(\"" + error + "\")</script>");

        }

 细节问题:

file控件是否有值:

if ($("#file").val())

 $("#submitform").trigger("click");

else

 $.messager.alert('上传文件', '请选择文件', 'info');

 

提交表单数据后表单的重置(注意如果包含多个表单请注意索引的顺序):

 $('#shoppriceform1')[0].reset(),js原生态的写法document.forms[0].reset();

在单个页面构建导入弹窗时,页面的内容一般是动态创建的,以前是利用easyui 中datagrid的href加载一个页面,现在直接在本页面构建Html内容,

在单个页面构建html的问题就是给弹窗的Content赋值以后 原来的HTML还在,出现两个ID相同的元素导致定位失败

 

你可能感兴趣的:(iframe)