`
javahigh1
  • 浏览: 1225462 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论
阅读更多

此教程将向你解释如何创建新的控制器action,学到action方法的要求,还可以学到如何防止方法被暴露为action。

向控制器添加Action

为控制器添加action就是为控制器添加一个新的方法。例如,代码1中的控制器包含一个名为Index()和一个名为SayHello()。两个方法都暴露为action。

代码1 – Controllers\HomeController.cs

一个方法要向外界暴露为action,必须满足几个要求:

  • 方法必须是公共的。
  • 不能是静态方法。
  • 不能是扩展方法。
  • 不能是构造函数,属性赋值器(getter)或取值器(setter)。
  • 不能有公开的泛型类型。
  • 不能是控制器基类的方法。
  • 不能包含 ref或者 out参数。

注意对控制器action的返回值并没有严格要求。控制器action可以返回string,DateTime,Random类的实例,或者void。 ASP.NET MVC框架会将不是action result的返回值转换为string并将这个string呈现到浏览器。

当你遵照上述要求向控制器添加方法时,这个方法就会被暴露为一个action。这里要小心,控制器action可以被任何连接到Internet的人调用。可千万不要创建 DeleteMyWebsite()控制器 action。

防止公共方法被调用

如果你需要在控制器类里创建一个公共方法而不想它被暴露为控制器action,那么可以使用[NonAction]特性来防止方法被调用。例如,代码 2 中的控制器包含了一个名为 CompanySecrets() 的公共方法,以 [NonAction] 特性修饰。

代码2 – Controllers\WorkController.cs

如果你试图在浏览器地址栏中输入 /Work/CompanySecrets 调用 CompanySecrets() 控制器action 那么你会得到图1所示的错误信息。

分享到:
评论

相关推荐

    SSH框架注解方式,struts自身创建Action

    SSH框架,下载后导入即可用,不是Maven项目,ssh框架中的action的创建时struts2自己完成的。

    如何在Swift中创建Action扩展

    我们先想象一下,我们已经有一个很牛逼的应用了,...下面我向你们介绍一个很酷的方法,那就是通过Action扩展,将信息记录到我们的应用中。下面例子的主要功能是将Safari浏览的网页中的信息保存在我们应用中。先通过File

    SSH框架搭建成功例子(注解方式,Struts2自身创建Action)

    做这个东西居然花了不少时间,也折腾了不少时间——尽管这并不是一个复杂的东西。 环境:jdk1.8 tomcat8.5 mysql Eclipse 使用的是注解的方式完成的,因为注解的方式可以减少一些配置文件,比较方便的。...

    配置Struts 2开发环境,了解和熟悉Struts 2的开发流程、了解和熟悉Struts2标签的使用方法.rar

    1.正确创建Action类; 2.配置struts.xml文件; 3.掌握在视图中访问Action的方法. 4. 掌握在视图中多方法调用同一个Action的方法 5.掌握常用标签textfield、radio、paaaword、checkboxlist、select、data的使用方法,...

    SSH整合案例-商品管理.rar

    3.5.创建action,接收页面请求,调用biz业务实现业务请求 3.6.编辑struts.xml,配置请求和页面转发路径 3.7.编辑applicationContext.xml, dao注入sessionFactory,service注入dao,action注入service。实现Spring ...

    FirstJava2免费版3.5

    3.直接创建action类,自动生成action类的代码.并修改struts-config.xml配置文件. 4.EJB向导: 用于EJB3.0和测试客户端自动创建, 目前支持SunAppServer9,Jboss4.2应用服务器 5.JWS向导: 用于WEB服务和测试客户端的...

    Struts2+hibernate+spring的常见面试题

    Struts2提供了许多方法来创建Action类,并通过struts.xml中或通过注释进行配置。我们可以创建自己的拦截器实现常见任务。 Struts2中自带了很多的标签,并使用OGNL表达式语言。我们可以创造我们自己的类型转换器来...

    整合struts2和spring源代码(可以直接在tomcat中运行)

    可以直接运行,并对整合spring和struts2步骤...— 允许Spring创建Action、Interceptror和Result。 — 由Struts创建的对象能够被Spring装配。 — 如果没有使用Spring ObjectFactory,提供了2个拦截器来自动装配action。

    FirstJava2免费版3.0

    这个工具是完全免费的Java开发工具,绿色软件,无需安装,主要给java初学者和一般的个人开发者使用,使他们更快学好JAVA技术....直接创建action类,自动生成action类的代码.并修改struts-config.xml配置文件.

    完全免费的Java/jsp编辑开发工具FirstJava2.2完整版

    直接创建action类,自动生成action类的代码.并修改struts-config.xml配置文件. 编辑辅助方式比Eclipse和Jbuild更高效,使简单, 当你使用FirstJava2你会发现,它速度很快,功能简单,管用,反应敏捷,编辑辅助方式高效,好用!

    FirstJava2主程序的关健更新

    3.直接创建action类,自动生成action类的代码.并修改struts-config.xml配置文件. 编辑辅助方式比Eclipse和Jbuild更高效,使简单, 当你使用FirstJava2你会发现,它速度很快,功能简单,管用,反应敏捷,编辑辅助方式高效,...

    Java/jsp编辑开发工具FirstJava2.2完整版

    3.直接创建action类,自动生成action类的代码.并修改struts-config.xml配置文件. 与2.2版相比更加完美,界面更加友好,并修改不少错误,重新设计了编译方式,可以根据需要选择编译方式和设置工程属性.

    Redux学习笔记.docx(Redux入门的都在这里了)

    在view中创建action,并通过store.dispatch调度 .要点小结: (四)配合React使用 .通过import引用redux .定义reducer: .创建store实例(以定义的reducer为参数) .将store(或其部分)作为props传给组件,可能...

    Struts2的使用-实验报告.docx

    Struts 2 是一个基于 Java 的开源 Web 应用程序框架,旨在简化和加速 Java EE Web 应用...在实验报告中,我们可以介绍如何创建 Action 类,这是处理请求的核心组件。Action 类中定义了方法,每个方法对应一个请求,方法

    Android开发包android-ActionQueue.zip

    }加依赖:compile 'in.srain.cube:action-queue:1.0.1'使用创建 action:String[] messageList = new String[]{  "message 1",  "message 2",  "message 3", }; for (int i = 0; i < messageList....

    网上名片管理struts2

    (4)掌握如何创建action; (5)理解action中对象的4个作用范围; (6)学会用Struts2标签或者程序代码; 二、实验使用的主要设备(含软件系统) 软件:MyEclipse10.0、Dreamweaver CS6、Tomcat、SQLServer2008 R2...

    设计一个简单的网上名片管理系统,实现struts2增删改查等操作

    1.需要完成的任务 :基于Struts2+JDBC+DAO,设计一个简单的网上名片管理系统,实现名片的增、删、改、查等...(4)掌握如何创建action; (5)理解action中对象的4个作用范围; (6)学会用Struts2标签或者程序代码;

    一个Action多方法调用的Struts 2的应用程序

    利用Struts 2框架创建一个web项目chap2_e22,实现用户登录过程。具体要求是在loginAction类中分别用login()和registered()处理用户登录和注册的过程,分别创建login.jsp和register.jsp两个页面实现登录和注册的...

    Struts中的Action 单例与多例详解

    System.out.println(创建action成功!!!); } public void execute(){ } } 运行代码可以看到,每次访问该网络地址都会在控制台输出一次!!! 如果是单例的话,若出现两个用户都修改一个对象的属性值,则会因为...

Global site tag (gtag.js) - Google Analytics