【JavaScript】使用form表单实现excel下载模板

来源:互联网 发布:新ipad壁纸软件 编辑:程序博客网 时间:2024/05/21 03:18

             最近在做ITOO考评系统的题库管理功能,在题库中有这样一个需求那就是要在上传题库之前如果没有模板的话,要下载模板。模板是根据题型来分的,所以要通过不同的题型下载不同的模板。

        本来想的很简单使用ajax来调用controller就好了。然并卵!

        然后就开始尝试新的方法,通过查资料发现了可以通过from表单提交,最后终于解决这个问题。

        代码很简答,也很容易理解。


        

    var questiontype = $('#QuestionType').combobox('getValue');//得到题型名称    var form = $("<form>");   //定义一个form表单    form.attr('style','display:none');   //在form表单中添加查询参数    form.attr('method','post');//设置或返回将数据发送到服务器的HTTP方法    form.attr('action', "GetExcel");          var input1 = $('<input>');     input1.attr('type','hidden');     input1.attr('name','exportPostTime');     input1.attr('value',questiontype);           $('body').append(form);  //将表单放置在web中    form.append(input1);   //将查询参数控件提交到表单上    form.submit();   //表单提交
 

     然后就是下载模板的代码

public FileResult GetExcel()        {                       string typeName = Request.Form["exportPostTime"];//获得前端的数据                       string ExcelName = typeName+"导入模板.xls";//拼接模板名            //获得文件路径            string strpath = Server.MapPath("~\\UpLoad\\Excel") + "\\" + ExcelName;            //这里可以换为这个格式application/vnd.ms-excel application/zip-x-compressed            return File(strpath, "application.vnd.ms-excel", ExcelName);        }


       在学习JS之前,使用的是webpage,基本上都是前端直接调用后台的方法。学习了ajax和MVC现在都是用ajax进行交互。而现在又学习一种新的通过js调用controller的方法。很好。

       

0 0
原创粉丝点击