码迷,mamicode.com
首页 > Web开发 > 详细

ASP.NET MVC学习三-数据传递之模型绑定

时间:2014-11-11 18:14:11      阅读:249      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   color   os   使用   sp   for   

一:简单的模型绑定

在ASP.NET MVC中是模型绑定来解析客户端传过来的数据的,简单的来说就更近一步来封装了获得数据的手段,让用户更方便的来获取数据了

我们来简单做一个例子

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

        [HttpPost]
        public ActionResult Index(string username)
        {
            ViewData["username"] = username;
            return View();
        }

这里我们定义了一个Action,[httpPost]限定Action只能被post请求访问,我们在其参数中定义一个名字username的字符串

view视图中的代码如下

@{
    ViewBag.Title = "Index";
}

<form method="post">
    <h1>简单模型绑定</h1>
    姓名:<input type="text" name="username" id="username" />
    <input type="submit" value="提交" />
</form>
@if (ViewData["username"] != null)
{
    <h1>@ViewData["username"]</h1>
}

这里注意模型绑定的name属性需要和view视图中的input标签工具name相同

bubuko.com,布布扣

 

二:使用FormCollection来进行模型绑定

在Asp.net中我们习惯了用request.Form来获取提交的表单的值,当然在MVC中我们可以很方便的获取其值

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

        [HttpPost]
        public ActionResult Index(FormCollection e)
        {
            ViewData["username"] = e["username"];
            ViewData["Age"] = e["Age"];
            return View();
        }

在视图中代码为

<form method="post">
    <h1>简单模型绑定</h1>
    姓名:<input type="text" name="username" id="username" />
    年龄:<input type="text" name="Age" id="Age" /><br />
    <input type="submit" value="提交" />
</form>
@if (ViewData["username"] != null)
{
    <label>姓名:</label><h1>@ViewData["username"]</h1>
    <label>年龄:</label><h1>@ViewData["Age"]</h1>
}

我们可以通过这种方法清晰的看到一样是能获取数据

bubuko.com,布布扣

 

三:模型绑定之传递对象

之前我们讨论的都是通过表单传递一些简单的值,现在如果要传递一个model对象能不能呢?我们先在Model层添加一个People得吧

public class People
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public int Age { get; set; }
    }

在Controller将代码修改

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

        [HttpPost]
        public ActionResult Index(People people)
        {
            ViewData["Id"] = people.Id;
            ViewData["Name"] = people.Name;
            ViewData["Age"] = people.Age;
            return View();
        }

此时我们将模型绑定为People类型

View中视图修改为

<form method="post">
    Id:<input type="text" name="Id" id="Id" />
    姓名:<input type="text" name="Name" id="Name" />
    年龄:<input type="text" name="Age" id="Age" /><br />
    <input type="submit" value="提交" />
</form>
@if (ViewData["Id"] != null)
{
    <label>Id:</label><h1>@ViewData["Id"]</h1>
    <label>姓名:</label><h1>@ViewData["Name"]</h1>
    <label>年龄:</label><h1>@ViewData["Age"]</h1>
}

当然这里我们将定义的Input标签的name属性与类people名字一样

bubuko.com,布布扣

 

到这里你可能又会觉得那能不能传递多个对象呢?

我们将Controller的代码改动一下

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

        [HttpPost]
        public ActionResult Index(People people1, People people2)
        {
            ViewData["Id1"] = people1.Id;
            ViewData["Name1"] = people1.Name;
            ViewData["Age1"] = people1.Age;

            ViewData["Id2"] = people2.Id;
            ViewData["Name2"] = people2.Name;
            ViewData["Age2"] = people2.Age;
            return View();
        }
<form method="post">
    Id1:<input type="text" name="people1.Id" id="people1.Id" />
    姓名1:<input type="text" name="people1.Name" id="people1.Name" />
    年龄1:<input type="text" name="people1.Age" id="people1.Age" /><br />
     Id2:<input type="text" name="people2.Id" id="people2.Id" />
    姓名2:<input type="text" name="people2.Name" id="people2.Name" />
    年龄2:<input type="text" name="people2.Age" id="people2.Age" /><br />
    <input type="submit" value="提交" />
</form>
@if (ViewData["Id1"] != null)
{
    <label>Id1:</label><h1>@ViewData["Id1"]</h1>
    <label>姓名1:</label><h1>@ViewData["Name1"]</h1>
    <label>年龄1:</label><h1>@ViewData["Age1"]</h1>
    
      <label>Id2:</label><h1>@ViewData["Id2"]</h1>
    <label>姓名2:</label><h1>@ViewData["Name2"]</h1>
    <label>年龄2:</label><h1>@ViewData["Age2"]</h1>
}

注意:View视图我们必须将标签的name属性设置和模型绑定名字一样

ASP.NET MVC学习三-数据传递之模型绑定

标签:style   blog   http   io   color   os   使用   sp   for   

原文地址:http://www.cnblogs.com/ilooking/p/4089953.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!