Action参数和ActionResult

一、Action

1、Action参数: 普通参数、Model类、FormCollection

(1)、普通参数 Index(string name,int age)   框架会自动把用户请求的QueryString 或者Post表单中的值根据参数名字映射对应参数的值,适用于查询参数比较少的情况。

        public ActionResult F3(string name, int age)
        {
            return Content("姓名:" + name + "年龄:" + age);
        }

(2)、Model类: 这种类叫ViewModel

        public ActionResult Index(IndexModel model)
        {
            return View(model);
        }

(3)、 FormCollection ,采用fc["name"]这种方式访问,适用于表单元素不确定的情况,用的比较少。

        public ActionResult F2Show()
        {

            return View();
        }
        public ActionResult F2(FormCollection fc)
        {
            string name = fc["name"];
            string age = fc["age"];
            return Content("姓名:" + name + "年龄:" + age);
        }
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>F2Show</title>
</head>
<body>
    <form action="/Test/F2" method="post">
        <input type="text" name="name" />
        <input type="text" name="age" />
        <input type="submit" />
    </form>
</body>
</html>

(4)  一部分是普通参数,一部分Model:

        public ActionResult Index(IndexModel model,string department)
        {
            return Content(model.Num1+model.Num2+department);
        }

(5) 添加默认值,默认值参数在最后

        public ActionResult F3(string name, int age=12)
        {
            return Content("姓名:" + name + "年龄:" + age);
        }

2、 Action 方法不能重载,除了加上[HttpGet] 、[HttpPost] 标记

        [HttpGet]
        public ActionResult F4()
        {

            return View();
        }

        [HttpPost]
        public ActionResult F4(string name,int age)
        {

            return Content("姓名:" + name + "年龄:" + age);
        }
<body>
    <form action="~/Test/F4" method="post">
        <input type="text" name="name" />
        <input type="text" name="age" />
        <input type="submit" />
    </form>
</body>

原文地址:https://www.cnblogs.com/fuyouchen/p/9368875.html

时间: 2024-11-09 00:58:32

Action参数和ActionResult的相关文章

MVC扩展ModelBinder,通过继承DefaultModelBinder把表单数据封装成类作为action参数

把视图省.市.街道表单数据,封装成一个类,作为action参数.如下: action方法参数类型: namespace MvcApplication1.Models{    public class Customer    {        public string Address { get; set; }    }} 在自定义ModelBinder中,接收视图表单数据,封装成Customer类. using System.Web; using System.Web.Mvc; using M

MVC扩展ModelBinder使类型为DateTime的Action参数可以接收日期格式的字符串

原文:MVC扩展ModelBinder使类型为DateTime的Action参数可以接收日期格式的字符串 如何让视图通过某种途径,把符合日期格式的字符串放到路由中,再传递给类型为DateTime的控制器方法参数?即string→DateTime.MVC默认的ModelBinder并没有提供这样的机制,所以我们要自定义一个ModelBinder. 首先,在前台视图中,把符合日期格式的字符串赋值给date变量放在路由中: @Html.ActionLink("传入日期格式为2014-06-19&quo

MVC中Action参数绑定的过程

一.题外话 上一篇:MVC中Action的执行过程 ControllerContext 封装有了与指定的 RouteBase 和 ControllerBase 实例匹配的 HTTP 请求的信息. 二.Model绑定者 2.1相关说明 http请求中的参数绑定到Model,是由实现了IModelBinder的类来完成的.我们称这样的类叫做Model绑定者 using System; namespace System.Web.Mvc { /// <summary>Defines the metho

ASP.NET MVC 5使用Filter过滤Action参数防止sql注入,让你代码安全简洁

在开发程序的过程中,稍微不注意就会隐含有sql注入的危险.今天我就来说下,ASP.NET mvc 5使用Filter过滤Action参数防止sql注入,让你代码安全简洁.不用每下地方对参数的值都进行检查,看是用户输入的内容是否有危险的sql.如果每个地方都要加有几个缺点: 1.工作量大 2.容易遗漏 3.不容易维护 下面我通过写一个过滤防止sql的特性类,对Action执行前对Action的参数进行处理,如果有其值有sql语句,就会这些非法字符替换为空字符串. 一.sql注入的例子: 上面的输入

ASP.NET MVC 5使用Filter过滤Action参数防止sql注入

在开发程序的过程中,稍微不注意就会隐含有sql注入的危险.今天我就来说下,ASP.NET mvc 5使用Filter过滤Action参数防止sql注入,让你代码安全简洁.不用每下地方对参数的值都进行检查,看是用户输入的内容是否有危险的sql.如果每个地方都要加有几个缺点: 1.工作量大 2.容易遗漏 3.不容易维护 下面我通过写一个过滤防止sql的特性类,对Action执行前对Action的参数进行处理,如果有其值有sql语句,就会这些非法字符替换为空字符串. 一.sql注入的例子: 上面的输入

NopCommerce架构分析之五------Model绑定Action参数

asp.net MVC中Action参数不只是一些基本类型,也支持实体参数.那么从客户端传来的数据如何映射或转换成实体对象呢?就是通过实体绑定类ModelBinder.此系列类在请求转化为后台Controller的Action方法前,捕获传递过来的数据,并对其进行解析和转换,最终为实体类对象. 在系统启动前,Global.asax.cs中的方法Application_Start方法调用下面代码定义参数转换规则. [csharp] view plain copy //model binders M

mvc action 参数绑定——值提供器【学习笔记】

每次http请求的各种数据(表单数据.url的数据.路由数据等等)都保存在不同的IValueProvider接口的实现类中. 而IValueProvider接口的实现类是通过ValueProviderFactory创建的. 在mvc中原生的ValueProviderFactory有六种: ChildActionValueProviderFactory:根据给定的Controller上下文创建一个ChildActionValueProvider对象. FormValueProviderFactor

ThinkPHP3.1新特性:Action参数绑定

Action参数绑定功能提供了URL变量和操作方法的参数绑定支持,这一功能可以使得你的操作方法定义和参数获取更加清晰,也便于跨模块调用操作方法了.这一新特性对以往的操作方法使用没有任何影响,你也可以用新的方式来改造以往的操作方法定义.Action参数绑定的原理是把URL中的参数(不包括分组.模块和操作地址)和控制器的操作方法中的参数进行绑定.例如,我们给Blog模块定义了两个操作方法read和archive方法,由于read操作需要指定一个id参数,archive方法需要指定年份(year)和月

(24) java web的struts2框架的使用-action参数自动封装与类型转换

structs可以对参数进行自动封装,做法也很简单. 一,action参数自动封装: 1,可以直接在action类中,声明public的属性,接受参数. 2,属性也是是private,如果是private,需要提供setter方法,也可以根据需要提供getter方法. 3,struts可以自动对类型进行转换,一般我们会传递String类型的参数,struts可以转换成默认声明的变量类型 4,调用api时候,传递的参数名必须和action类中声明的名称相同. public class UserAc