.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相同的元素导致定位失败

 

posted @ 2014-12-09 21:44  麻将我会  阅读(876)  评论(3编辑  收藏  举报