在控制器获取View数据的4种方法

  • 传统方法,通过name获取input的值
  • 通过 FormCollection 对象获取值
  • 通过参数获取
  • 构造对象,绑定数据对象

前台代码

<fieldset>
        <legend>Submit data</legend>
    @using (Ajax.BeginForm("SubmitData", "Home",
                            new AjaxOptions {}))
    {
       <div>
             @Html.Label("Name")
                @Html.TextBox("txtName")
           <br />
            @Html.Label("Age")
                @Html.TextBox("txtAge")
       </div>
    <button>Submit</button>
    }
</fieldset>

界面显示

1、传统方法,通过name获取input的值

       [HttpPost]
        public ActionResult SubmitData()
        {
            string name = Request["txtName"].ToString();
            int age = Convert.ToInt32(Request["txtAge"].ToString());

            string result = "Name:" + name;
            result += "</br>" + "Age:" + age.ToString();
            return Content(result);
        }

结果输出:

2、通过 FormCollection 对象获取值

       [HttpPost]
        public ActionResult SubmitData(FormCollection form)
        {
            string name = form["txtName"].ToString();
            int age = Convert.ToInt32(form["txtAge"].ToString());

            string result = "Name:" + name;
            result += "</br>" + "Age:" + age.ToString();
            return Content(result);
        }

结果输出就不贴了

3、通过参数获取

       [HttpPost]
        public ActionResult SubmitData(string txtName, string txtAge)
        {
            string name = txtName;
            int age = Convert.ToInt32(txtAge);

            string result = "Name:" + name;
            result += "</br>" + "Age:" + age.ToString();
            return Content(result);
        }

4、构造对象,绑定数据对象(这种是现在比较常用的方法)

前台代码:

@model mvcsample.Controllers.Person
<fieldset>
    <legend>Submit data</legend>
    @using (Ajax.BeginForm("SubmitData", "Home",
                            new AjaxOptions {}))
    {
        <div>
            <div class="editor-label">
                @Html.LabelFor(model => model.Name)
            </div>
            <div class="editor-field">
                @Html.EditorFor(model => model.Name)
            </div>
             <div class="editor-label">
                @Html.LabelFor(model => model.Age)
            </div>
            <div class="editor-field">
                @Html.EditorFor(model => model.Age)
            </div>
        </div>
        <button>Submit</button>
    }
</fieldset>

后台代码:

 public class HomeController : Controller
    {
        public ActionResult Index()
        {
            Person model = new Person();
            return View(model);
        }

        [HttpPost]
        public ActionResult SubmitData(Person person)
        {
            string name = person.Name;
            int age = person.Age;

            string result = "Name:" + name;
            result += "</br>" + "Age:" + age.ToString();
            return Content(result);
        }
    }

    public class Person
    {
        public string Name { get; set; }
        public int Age { get; set; }
    }

最近在学一下MVC,看了一些国外的文章写得很好,也很详细,就试着翻译一些自认为不错的文章,也当做自己的学习笔记

时间: 2024-10-12 11:59:22

在控制器获取View数据的4种方法的相关文章

PHP获取POST数据的几种方法

一.PHP获取POST数据的几种方法 方法1.最常见的方法是:$_POST['fieldname'];说明:只能接收Content-Type: application/x-www-form-urlencoded提交的数据解释:也就是表单POST过来的数据 方法2.file_get_contents("php://input");说明:允许读取 POST 的原始数据.和 $HTTP_RAW_POST_DATA 比起来,它给内存带来的压力较小,并且不需要任何特殊的 php.ini 设置.p

PHP获取POST数据的几种方法汇总

一.PHP获取POST数据的几种方法 方法1.最常见的方法是:$_POST['fieldname']; 说明:只能接收Content-Type: application/x-www-form-urlencoded提交的数据解释:也就是表单POST过来的数据 方法2.file_get_contents("php://input"); 说明:允许读取 POST 的原始数据.和 $HTTP_RAW_POST_DATA 比起来,它给内存带来的压力较小,并且不需要任何特殊的 php.ini 设置

python pandas 获取列数据的几种方法及书写形式比较

pandas获取列数据位常用功能,但在写法上还有些要注意的地方,在这里总结一下: ''' author: zilu.tang 2015-12-31 ''' import pandas as pd data1 = pd.DataFrame(...) #任意初始化一个列数为3的DataFrame data1.columns=['a', 'b', 'c'] 1. data1['b'] #这里取到第2列(即b列)的值 2. data1.b #效果同1,取第2列(即b列) #这里b为列名称,但必须是连续字

MVC 控制器向View传值的三种方法

1.提供视图模型对象 你能把一个对象作为View方法的参数传递给视图. public ViewResult Index() { DateTime date = DateTime.Now; return View(date); } 然后我们在视图中使用Razor的Model关键字来访问这个对象 @{ ViewBag.Title = "Index"; } <h2>Index</h2> The day is: @(((DateTime)Model).DayOfWeek

ASP.NET MVC 控制器向View传值的三种方法

转自:http://www.cnblogs.com/shinima/p/3940452.html 1.提供视图模型对象 你能把一个对象作为View方法的参数传递给视图. public ViewResult Index() { DateTime date = DateTime.Now; return View(date); } 然后我们在视图中使用Razor的Model关键字来访问这个对象 @{ ViewBag.Title = "Index"; } <h2>Index<

php获取POST数据的三种方法

方法一,$_POST $_POST或$_REQUEST存放的是PHP以key=>value的形式格式化以后的数据. $_POST方式是通过 HTTP POST 方法传递的变量组成的数组,是自动全局变量.如使用$_POST['name']就可以接收到网页表单以及网页异步方式post过来的数据,即$_POST只能接收文档类型为Content-Type: application/x-www-form-urlencoded提交的数据. 方法二,使用file_get_contents("php://

5.MVC框架开发(强类型开发,控制器向界面传递数据的几种方法)

界面表单中的表单元素名字和数据库表的字段名相一一映射(需要哪个表的数据就是那个表的模型(Model)) 在View页面中可以指定页面从属于哪个模型 注:以上的关系可以通过MVC的强类型视图开发来解决我们的开发代码的智能感知 1.强类型视图开发的步骤 1)在页面中指定强类型的类型(一定是引用类型),代码:例: @model List<MyMVCBookShop.Models.Book> 2)从控制器传强类型的数据到View视图里,那么就必须保证传入的数据一定和强类型视图中定义的类型相一致,例:

jQuery异步获取json数据的2种方式

jQuery异步获取json数据有2种方式,一个是$.getJSON方法,一个是$.ajax方法.本篇体验使用这2种方式异步获取json数据,然后追加到页面. 在根目录下创建data.json文件: { "one" : "Hello", "two" : "World" } ■ 通过$.getJSON方法获取json数据 <script src="Scripts/jquery-2.1.1.min.js"

SQL Server 批量插入数据的两种方法

在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题.下面介绍SQL Server支持的两种批量数据插入方法:Bulk和表值参数(Table-Valued Parameters). 运行下面的脚本,建立测试数据库和表值参数. [c-sharp] view plaincopy --Create DataBase create database BulkTestDB; go use BulkTes