葡京赌场网址上学ASP.NET MVC(三)——我的首先个ASP.NET MVC 视图

 

此作品是基于  EasyUI+Knockout实现经典表单的查看、编辑

今日本人将对前一篇著作中的示例举办修改,前一篇小说中并从未采用视图,本次将采取视图。对于前一个示范中的HelloWorldController类举行改动,使用视图模板文件生成HTML响应给浏览器。

 

一、创设视图文件

一. 预备干活

 

  1. 点击此下载连锁的公文,并把
ims 文件夹放到 ims 工程对应的路劲下

上一篇作品中的HelloWordController类中的Index方法重返了一串硬编码的字符串信息。而这两遍,我将新建一个List方法,用来回到一个View对象,如下边的代码所示:

  2. 参阅网址:杰创打印控件

 

 

public ActionResult List()

{

    return View();

}

二. 安装ant  

 

  1. 解压apache-ant-1.9.4-bin到任意地方  

率先,创制一个应用Razor视图引擎的视图模板文件,Razor视图模板文件的恢弘名为.cshtml,并提供一种相比较优雅的法门使用C#来创建HTML输出。Razor视图模板收缩了编写程序所急需输入的字符数量和敲击键盘的次数,并落实了迅猛、流畅的编码工作。

  2.
安排环境变量ANT_HOME为apache-ant-1.9.4-bin解压后的目录地址,如D:\Download\apache-ant-1.9.4  

何以来成立视图呢?在Visual
Studio中为HelloWordController.cs的List控制器方法应用一个视图模板来生成一个HTML的响应给浏览器。

  3. 在条件变量CLASSPATH中插足%ANT_HOME%\lib;  

控制器方法(也叫做动作方法),如下边的List方法,平常重临一个ActionResult(或是ActionResult的派生类),而不是中央类型,如字符串,整形。

  4. 在环境变量Path中参预%ANT_HOME%\bin;  

下边就是加上一个视图方法的具体步骤:

  5. 在cmd下测试ant是否安装正确,命令:ant -version  
  安装成功呈现ant的版本号,出错,自己网上查

1)先将光标置在List方法中,

 

2)单击鼠标右键,Visual
studio会弹出一个右键菜单,然后在弹出的右键菜单中,用鼠标左键单击“添加视图”菜单。如下图。

三. 安装iReport,制作报表的工具  

 葡京赌场网址 1

  1. 一直双击iReport-5.6.0-windows-installer.exe举办安装

附带,Visual
Studio会弹出一个“添加视图”对话框。其中“视图名称”默认为List,其他装置可以修改,本文将保留默认设置,然后点击“添加”按钮:如下图。

 

 葡京赌场网址 2

四. jasperreports源码与例子  

 

  1. 解压jasperreports-5.6.0-project.zip  

如此会在MvcApplication1\Views\HelloWorld文件夹中开创一个List.cshtml文件。如下图。

  2. 在蕴藏build.xml文件的目录执行ant -p 命令可查看可实施怎么样ant命令  

 葡京赌场网址 3

  3.
/jasperreports-5.6.0/src下是源码,可在/jasperreports-5.6.0/目录下执行ant
jar来编译源代码,

 

    最后在/jasperreports-5.6.0/dist/下生成jasperreports-5.6.0.jar包

下图显示了所创办的List.cshtml文件的情节:

  4. /jasperreports-5.6.0/demo/samples/下是实例  

葡京赌场网址 4

  5.
/jasperreports-5.6.0/demo/samples/webapp/下是业内的实例,可在其目录下执行ant
war命令生成war包,可在tomcat下直接配置运行  

添加<H2>HTML标记到以下文件(MvcApplication1\Views\HelloWord\List.cshtml)中。

 

代码如下。

五. 制作一张报表  

@{

    ViewBag.Title = "List";

}

<h2>List</h2>

<p>Hello from our View Template!</p>

     
iReport设计报表应留神:在蕴藏中文的地点,设置如下,避免pdf导出中文不可以展现:
   

 

      Font  name:    甲骨文 (中文字体)        

其三,在Visual studio中按“F5”运行之后,ASP.NET
MVC默认调用的是Index方法,而实际上需要浏览到HelloWorld控制器的List方法,(如:http://localhost:xxxx/HelloWorld/List)。再来看一下控制器中的List方法,只有一行代码return
View()。由于我们从不显然指定的视图文件中运用的名号,ASP.NET
MVC默认为采纳\Views\HelloWorld\List.cshtml视图文件。结果如下图。

      PDF font name:   STSong-Light        

 葡京赌场网址 5

      PDF  Encoding:  UniGB-UCS2-H(Chinese Siplified)        

程序运行起,效果如上图,看起来还不错。不过,请留心浏览器的标题栏呈现“List——我的首先个ASP.NET
MVC应用程序”和在页面顶部的“将您的徽标放置在此处”有些不协调,再展开部分改成。

      PDF   Embeded: √

二、修改视图文件和页面布局 首先,大家要修改在页面顶部的“将您的徽标放置在此地”这一个标题。该文件每一页都是同一的,它放在一个共享的视图文件中,这些共享的视图文件又叫做布局文件,它是一个集体布局页面,供其他页面使用。在解决方案资源管理器中开辟/Views/Shared文件夹中的“_Layout.cshtml”文件。如下图。

 

 葡京赌场网址 6

六. 报表在项目中的应用  

布局模板文件允许你在一个地点填写网站的布局代码之后,能够在六个页面中利用。在布局模板文件中找到@
RenderBody()行,
RenderBody是一个占位符,是用来突显大家所创造特定网页视图。例如,当你在页面中击“关于”链接时,\Home\
About.cshtml视图文件就会显得在RenderBody地点处。如下图中的黑色方框部分就是。

  1.
将创立好的表格(以jrxml结尾的文件)拷贝到\WebContent\report\jasperreport\
目录下  

葡京赌场网址 7

  2. jasperreports-5.6.0-project 的 lib 和 dist
目录下可找到如下jar包:

从“将您的徽标放置在那里”更改布局模板网站标题标题为“我的率先个ASP.NET MVC
应用程序”。

葡京赌场网址 8葡京赌场网址 9

     

groovy-all-2.0.1.jar
iText-2.1.7.js2.jar
iTextAsian.jar
jackson-annotations-2.1.4.jar
jackson-core-2.1.4.jar
jackson-databind-2.1.4.jar
jasperreports-5.6.0.jar
  <div class="float-left">

                    <p class="site-title">@Html.ActionLink("我的第一个ASP.NET MVC 应用程序", "Index", "Home")</p>

                </div>

View Code

与此同时修改标题,把题目修改为如下内容:   

  3. 丰硕报表的多少源类

  <title>@ViewBag.Title - 我的第一个ASP.NET MVC 应用程序</title>

    BaseJRDataSource.java,数据源接口  

 

葡京赌场网址 10葡京赌场网址 11

运作该应用程序,并小心浏览器中的标题,它会来得为“我的首先个ASP.NET
MVC
应用程序”。点击页面上的持有链接,你会意识拥有页面的标题都是“我的首先个ASP.NET
MVC
应用程序”。这表明,大家假若对布局模板文件举行了修改,那么网站上的兼具应用到布局模板的其他页面都会跟着变动。如下图。

package com.ims.interfaces.report.datasource;

import java.util.Map;

import net.sf.jasperreports.engine.JRDataSource;

public interface BaseJRDataSource extends JRDataSource{
    public JRDataSource getInstance(Map parameters);
    public Map<String,Object> getReportParams(Map parameters);
}

 葡京赌场网址 12

View Code

后天,让大家转移List 视图的题目。

    ReceiveDataSource.java,材料收料单报表的数目源类

打开MvcApplication\Views\
HelloWorld\List.cshtml文件,做以下修改:

葡京赌场网址 13葡京赌场网址 14

首先,   对于页面的标题进行改动

package com.ims.interfaces.report.datasource.mms;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;

import com.ims.interfaces.report.datasource.BaseJRDataSource;
import com.ims.service.mms.ReceiveBS;

import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRField;

public class ReceiveDataSource implements BaseJRDataSource{
    @Autowired
    private ReceiveBS receiveBS;

    private List<Map<String,Object>> data = new ArrayList<Map<String,Object>>();
    private int index = -1;

    @Override
    public Object getFieldValue(JRField field) throws JRException {
        Object value = null;        
        String fieldName = field.getName();

        if ("billNo".equals(fieldName)){
            value = data.get(index).get("billNo");
        }else if ("rownum".equals(fieldName)){
            value = index+1;
        }else if ("supplierName".equals(fieldName)){
            value = data.get(index).get("supplierName");
        }else if ("warehouseName".equals(fieldName)){
            value = data.get(index).get("warehouseName");
        }else if("receiveDate".equals(fieldName)){
            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            value = (null!=data.get(index).get("receiveDate")?formatter.format(data.get(index).get("receiveDate")):"");
        }else if("totalMoney".equals(fieldName)){
            value = data.get(index).get("totalMoney");
        }

        return value;
    }

    @Override
    public boolean next() throws JRException {
        index++;
        return (index < data.size());
    }

    @Override
    public JRDataSource getInstance(Map parameters) {
        data = receiveBS.findPage(parameters).getRows();
        index = -1;
        return this;
    }

    @Override
    public Map<String, Object> getReportParams(Map parameters) {
        parameters.put("dataCount", data.size());
        return parameters;
    }

}

其次,对页面中的二级标头(<h2>元素)举行修改。注意二种的改动需要有点不同,以便能直观的意识,我们修改的是应用程序的哪一部分。

View Code

@{

    ViewBag.Title = "ASP.NET MVC 应用程序 List方法";

}

<h2>我的第一个ASP.NET MVC 应用程序 的方法 ——List</h2>

<p>Hello from our View Template!</p>

  4.
applicationInterface.xml,在spring的安排文件中添加多少源类的bean  

 

葡京赌场网址 15葡京赌场网址 16

“ViewBag.Title = “ASP.NET MVC 应用程序
List方法””,下边的代码设置List.cshtml视图文件中的ViewBag对象的Title属性。为啥是ViewBag.Title属性呢,你可以打开_loyout.cshtml文件看看,你会意识在此文件中的<title>元素中会有ViewBag.Title。这样就足以便宜的使用这种修改ViewBag属性的法子,轻松修改视图文件和布局文件中的参数。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
    xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:context="http://www.springframework.org/schema/context" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">  

    <!-- jasperreport -->
    <bean id="mmsReceiveDataSource" class="com.ims.interfaces.report.datasource.mms.ReceiveDataSource" />
    <!-- jasperreport -->
</beans>

运行应用程序并浏览到http://localhost:36878/HelloWorld/list
。请留意,在浏览器中当前页面的标题,次级标题已经改成。
(假使您浏览器中尚无暴发变化,可能是由于浏览器缓存了往日的情节。请按Ctrl

View Code

  • F5让浏览器强制从服务器加载响应。
    )浏览器页面中显示的题目与我们在List.cshtml文件中设定的ViewBag.Title属性的内容是同等的。如下图中的黑色方框所标示的。

  5.
showReport.jsp,报表显示页面;打印控件采取jatoolsPrinter.cab,亟需tomcat服务以进程的模式启动 

 葡京赌场网址 17

葡京赌场网址 18葡京赌场网址 19

地点的演示当中,我们把装有要显得的数据都是硬编码在视图文件中的。固然这多少个MVC应用程序有一个“V”
(视图) ,有一个“C” (控制器) ,不过却绝非“M” (模型)。

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page errorPage="error.jsp" %>
<%@ page import="com.ims.common.ServiceLocator" %>
<%@ page import="com.ims.interfaces.report.datasource.BaseJRDataSource" %>
<%@ page import="net.sf.jasperreports.engine.*" %>
<%@ page import="net.sf.jasperreports.engine.util.*" %>
<%@ page import="net.sf.jasperreports.engine.export.*" %>
<%@ page import="net.sf.jasperreports.j2ee.servlets.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<%@ page import="com.alibaba.fastjson.JSONObject" %>
<%
    String report = request.getParameter("jasper");
    String dataSource = request.getParameter("ds");
    String args = request.getParameter("args");
    String fileName = new String(request.getParameter("fileName").replaceAll(" ", "").getBytes("utf-8"),"iso8859-1");
    Map parameters = new HashMap();

    JSONObject jsonMap = JSONObject.parseObject(args);  
    Iterator<String> it = jsonMap.keySet().iterator();  
    while(it.hasNext()) {  
        String key = (String)it.next();   
        parameters.put(key, jsonMap.get(key));
    }  

    String appmap = request.getContextPath();

    File reportFile = new File(application.getRealPath("/report/jasperreport/"+report+".jasper"));
    if (!reportFile.exists()){
        JasperCompileManager.compileReportToFile(application.getRealPath("/report/jasperreport/"+report+".jrxml"));
        reportFile = new File(application.getRealPath("/report/jasperreport/"+report+".jasper"));
    }

    JasperReport jasperReport = (JasperReport)JRLoader.loadObjectFromFile(reportFile.getPath());
    BaseJRDataSource  baseJRDataSource=    ((BaseJRDataSource)ServiceLocator.getService(dataSource));
    JRDataSource jRDataSource = baseJRDataSource.getInstance(parameters);
    JasperPrint jasperPrint = 
            JasperFillManager.fillReport(
                jasperReport, 
                baseJRDataSource.getReportParams(parameters), 
                jRDataSource
            );

    session.setAttribute(ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE, jasperPrint);

    int pageIndex = 0;
    int lastPageIndex = 0;
    if (jasperPrint.getPages() != null){
        lastPageIndex = jasperPrint.getPages().size() - 1;
    }

    String pageStr = request.getParameter("page");
    try{
        pageIndex = Integer.parseInt(pageStr);
    }
    catch(Exception e){}

    if (pageIndex < 0){
        pageIndex = 0;
    }

    if (pageIndex > lastPageIndex){
        pageIndex = lastPageIndex;
    }

    HtmlExporter exporter = new HtmlExporter();    
    StringBuffer sbuffer = new StringBuffer();

    exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
    exporter.setParameter(JRExporterParameter.OUTPUT_STRING_BUFFER, sbuffer);
    exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "../servlets/image?image=");
    //exporter.setParameter(JRExporterParameter.PAGE_INDEX, Integer.valueOf(pageIndex));
    exporter.setParameter(JRHtmlExporterParameter.HTML_HEADER, "");
    exporter.setParameter(JRHtmlExporterParameter.BETWEEN_PAGES_HTML, "");
    exporter.setParameter(JRHtmlExporterParameter.HTML_FOOTER, "");

    exporter.exportReport();
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
  <title>报表</title>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
  <%@ include file="/common/basePath.jsp"%>
  <style type="text/css">
    a {text-decoration: none}
  </style>
  <OBJECT ID="jatoolsPrinter" CLASSID="CLSID:B43D3361-D075-4BE2-87FE-057188254255" codebase="jatoolsPrinter.cab#version=5,7,0,0" width="0" height="0"></OBJECT>
</head>
<body topmargin=0 leftmargin=0 rightmargin=0 bottomMargin=0>
<table id=titleTable width=100% cellspacing=0 cellpadding=0 border=0 ><tr>
    <td height="25" width=100% valign="middle"  style="font-size:13px" background="contenttoolbar/toolbar-bg.gif">
        <table width="100%">
            <tr >                
                <td width="100%" align="right" valign="middle"   style="font-size:12px; line-height:12px; margin:3px 0 0 0 ;" >&nbsp;

                <a href="#" onClick="doPrint('printPreview');return false;"><img src='contenticon/icon/printer.png' border=no ></a>
                <!--  
                <a href="<%=appmap%>/servlets/xls?fileName=<%=fileName %>" target="_blank"><img src='contenticon/doc/xls.gif' border=no ></a>
                -->
                <a href="<%=appmap%>/servlets/pdf" target="_blank"><img src='contenticon/doc/pdf.gif' border=no ></a>
                <a href="<%=appmap%>/servlets/docx?fileName=<%=fileName %>" target="_blank"><img src='contenticon/doc/doc.gif' border=no ></a>

                <!-- 
                <%
                    if (pageIndex > 0){
                %>
                <a href='showReport.jsp?page=0&jasper=<%= report%>&ds=<%= dataSource%>&args=<%= args%>'><img src="../resource/image/common/firstpage.gif" border="0"></a>
                <a href='showReport.jsp?page=<%=pageIndex - 1%>&jasper=<%= report%>&ds=<%= dataSource%>&args=<%= args%>'><img src="../resource/image/common/prevpage.gif" border="0"></a>
                <%
                    }else{
                %>
                <img src="../resource/image/common/firstpage.gif" border="0">
                <img src="../resource/image/common/prevpage.gif" border="0">
                <%
                    }
                    if (pageIndex < lastPageIndex){
                %>
                <a href='showReport.jsp?page=<%=pageIndex + 1%>&jasper=<%= report%>&ds=<%= dataSource%>&args=<%= args%>'><img src="../resource/image/common/nextpage.gif" border="0"></a>
                <a href='showReport.jsp?page=<%=lastPageIndex%>&jasper=<%= report%>&ds=<%= dataSource%>&args=<%= args%>'><img src="../resource/image/common/lastpage.gif" border="0"></a>
                <%
                    }else{
                %>
                <img src="../resource/image/common/nextpage.gif" border="0">
                <img src="../resource/image/common/lastpage.gif" border="0">
                <%
                    }
                %>
                &nbsp;&nbsp;第<%=pageIndex+1 %>页/共<%=jasperPrint.getPages().size() %>页
                 -->
                </td>
            </tr>
      </table>
    </td>
</table>
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<td align="center">
<%=sbuffer.toString()%>
</td>
<script type="text/javascript">
function doPrint(how)
{   
    //打印文档对象
    var myDoc ={ 
        documents: document,    // 打印页面(div)们在本文档中
        copyrights :    '杰创软件拥有版权  www.jatools.com'      // 版权声明,必须 
    };

    // 调用打印方法
    if(how == 'printPreview')
        jatoolsPrinter.printPreview(myDoc);  // 打印预览                
    else if(how == 'printDialog')
        jatoolsPrinter.print(myDoc ,true);   // 打印前弹出打印设置对话框              
    else
        jatoolsPrinter.print(myDoc ,false);  // 不弹出对话框打印
}
</script>

</table>
</body>
</html>

 

View Code

三、从控制器传递数据到视图

  6. web.xml,若要协助pdf、img、excel、doc导出,需添加servlet

首先,从音信从控制器到视图说起,控制器类通过收到浏览器传入的URL请求,从数据库中寻找数据,并最终决定以什么品种的响应发回浏览器,视图负责从一个控制器接收到的数码用于转移和格式化成HTML响应给浏览器。

葡京赌场网址 20葡京赌场网址 21

控制器负责提供数据或对象给视图模板,让视图模板来按照控制器提供的数额或对象突显给浏览器。最佳的做法是:一个视图模板不会执行工作逻辑或与数据库间接互动。相反,一个视图模板是否能正确工作是由给它提供数据的控制器所决定的。保持这种“关注点分离”有助于保持代码干净,可测试,更便于维护。

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 3     xmlns:web="http://xmlns.jcp.org/xml/ns/javaee" 
 4     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_4.xsd http://xmlns.jcp.org/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
 5     version="2.4">
 6 
 7   <servlet>
 8     <servlet-name>PdfServlet</servlet-name>
 9     <servlet-class>net.sf.jasperreports.j2ee.servlets.PdfServlet</servlet-class>
10   </servlet>
11   <servlet>
12     <servlet-name>ImageServlet</servlet-name>
13     <servlet-class>net.sf.jasperreports.j2ee.servlets.ImageServlet</servlet-class>
14   </servlet>
15   <servlet>
16     <servlet-name>XlsServlet</servlet-name>
17     <servlet-class>net.sf.jasperreports.j2ee.servlets.XlsServlet</servlet-class>
18   </servlet>
19   <servlet>
20     <servlet-name>DocxServlet</servlet-name>
21     <servlet-class>net.sf.jasperreports.j2ee.servlets.DocxServlet</servlet-class>
22   </servlet>
23 
24   <servlet-mapping>
25     <servlet-name>PdfServlet</servlet-name>
26     <url-pattern>/servlets/pdf</url-pattern>
27   </servlet-mapping>
28   <servlet-mapping>
29     <servlet-name>ImageServlet</servlet-name>
30     <url-pattern>/servlets/image</url-pattern>
31   </servlet-mapping>
32   <servlet-mapping>
33     <servlet-name>XlsServlet</servlet-name>
34     <url-pattern>/servlets/xls</url-pattern>
35   </servlet-mapping>
36   <servlet-mapping>
37     <servlet-name>DocxServlet</servlet-name>
38     <url-pattern>/servlets/docx</url-pattern>
39   </servlet-mapping>
40 
41 </web-app>

下面的以身作则是,在HelloWorldController类中写了一个WelcomName方法,这些艺术需要多个参数(name与num提姆(Tim)es),然后经过控制器处理未来直接出口结果到浏览器。不是让该控制器直接硬编码为一个字符串输出,而是采纳一个视图模板来顶替。该视图模板将生成一个动态的响应,这意味着你需要从控制器传递相应的数目给视图,以转变响应。

View Code

开辟
HelloWorldController.cs文件同时修改WelcomName方法,将Num提姆es与name值添加到ViewBag对象。
ViewBag是一个动态目的,那代表你可以把此外数据类型添加到ViewBag里面。在ASP.NET
MVC模型绑定系统会自行从地点栏中收获模式参数的字符串,并映射命名参数(name和num提姆es
) 。

  7. report.js

 

葡京赌场网址 22葡京赌场网址 23

        public ActionResult WelcomeName(string name, int numTimes = 1)
        {

            ViewBag.Message = "Hello " + name;
            ViewBag.NumTimes = numTimes;
            return View();

        }
/***
 * 参数说明:{jasper:"report01.jasper",args:arr}
 * param.jasper:jasper文件名称,最好不要用中文
 * param.ds:dataSource文件名称,最好不要用中文
 * param.args:*格式待定*,暂时用数组,以后看使用什么格式方便可以再改
 * author: suxy.
 */
function openReport(win, param){
    var strFullPath = window.document.location.href;
    var strPath = window.document.location.pathname;
    var pos = strFullPath.indexOf(strPath);
    var prePath = strFullPath.substring(0, pos);
    var postPath = strPath.substring(0, strPath.substr(1).indexOf('/') + 1);
    var url = postPath;

       if(!param.jasper){
           alert("jasper参数为空!");
           return false;
       }

    //弹出报表展示窗口,可选择更多的功能,不只是打印,还有导出excel等等
    url+="/report/common/showReport.jsp?jasper="+param.jasper+"&ds="+param.ds+"&args="+param.args;
    url=encodeURI(url);
    //打开新窗口
//    var win=window.open("about:blank");
    win.document.write("报表加载中,请稍候..");
    //创建form对象
    var win_form=win.document.createElement("form");
    win_form.action=url;
    win_form.method="POST";
    win.document.body.appendChild(win_form);
    //参数设置(创建input对象)
    var win_form_input=win.document.createElement("input");
    win_form_input.type="hidden";
    win_form_input.name='fileName';
    win_form_input.value=param.fileName;
    win_form.appendChild(win_form_input);
    //提交表单
    win_form.submit();
}

 

View Code

下面的代码中把要传送给视图的多少包含在了ViewBag对象中了。

 

然后,你需要一个WelcomeName视图模板​​!如下图,新建一个新的视图文件。

七. 效能显示

葡京赌场网址 24

  访问:http://localhost:8080/ims/mms/receive.do,点击 打印 按钮

 

葡京赌场网址 25

Visual
Studio会弹出一个“添加视图”对话框。按下图所示,填写相应数额。

  右上角的按钮可以兑现打印、pdf导出、word导出

 葡京赌场网址 26

然后单击“添加”按钮,Visual
Studio会添加一个新的WelcomeName.cshtml文件,在此文件的<h2>元素的花花世界添加以下代码。下边的完全WelcomeName.cshtml文件如下所示。

@{

    ViewBag.Title = "这是我的ASP.NET MVC世界的欢迎WelcomeName";

}



<h2>WelcomeName</h2>

<ul>

   @for (int i=0; i < ViewBag.NumTimes; i++) {

      <li>@ViewBag.Message</li>

   }

</ul>

 

1)运行应用程序并利用浏览器浏览以下网址:

http://localhost:xx/HelloWorld/WelcomeName?name=dotnet菜园&numtimes=8

2)URL中的数据是先从URL中传送给指定的控制器

3)指定的控制器将数据打包成一个ViewBag对象

4)控制器再把打包好的目的传递给视图,然后该视图突显数据给用户看。你相会到八条欢迎新闻。

如下图。

 葡京赌场网址 27

关于ASP.NET
MVC中的视图部分,就学习到此地,下次再持续。