zoukankan      html  css  js  c++  java
  • 如何在.net MVC1.0中post一个实体对象和集合对象

    在MVC的开发模式下,有很多很多的特性都是非常实用的,而且解决了我们之前在Web Form的开发模式下遇到的比较痛苦的问题,今天我来谈谈Model Binder中如何POST一个一个实体对象和集合对象到服务端,欢迎砸鸡蛋或者送鲜花!
            我使用的是MVC自带的项目模板,创建一个类如下:

    View Code
    public class User
    {
    public string Name { get; set; }
    public int Age { get; set; }
    }

      在View中声明的Form表单为:<% using(Html.BeginForm("aaa","Home",FormMethod.Post)){ %>

    然后放置两个INPUT:

    <p>姓名:<input type="text" id="user.name" name="user.name" /></p>
    <p>年龄:<input type="text" id="user.age" name="user.age" /></p>

      然后在对应的Controller中创建一个Action:

    View Code
    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult aaa(User user,string[] cbx1)
    {
    return View("Index");
    }

      这样当我们提交时就可以通过user对象的两个属性分别获取view中的两个表单,值得说明的是如果用户输入的年龄不是int型,那么user对象的Age属性值就为0。

           而Post一个集合对象的话如下,首先在aaa这个Action中增加一个参数List<User> users,在view中我们这么写:

    View Code
    <table>
    <%for (int index = 0; index < 2; index++){ %>
    <thead>
    <tr>
    <td colspan="2">用户1</td>
    </tr>
    </thead>
    <tbody>
    <tr>
    <td>姓名:</td>
    <td><input type="text" id="txtName1" name="users[<%= index%>].Name" /></td>
    </tr>
    <tr>
    <td>年龄:</td>
    <td>
    <select id="sltAge1" name="users[<%= index%>].Age">
    <option value="1">1岁</option>
    <option value="10">10岁</option>
    <option value="100">100岁</option>
    </select>
    </td>
    </tr>
    </tbody>
    <%} %>
    </table>

      提交则同样可以获取到Users的集合,值得一说的是当我给input中的name赋值为类似“users[0].Age"或“users[1].Age”时获取到的users对象的Count=1,只能用上述方式才能得到这个完整的集合对象,不知为何。

  • 相关阅读:
    linux修改键盘按键
    linux添加一个已经存在用户到一个用户组
    centos-6更新yum源(163)
    Fedora 19安装以后的优化
    centos永久性修改系统时间显示格式
    smb.conf文件详解
    Centos上部署文件共享
    centos上mysql开启远程访问
    centos安装mysql后默认密码修改
    centos上mysql的一种安装方式
  • 原文地址:https://www.cnblogs.com/FreeDong/p/2169116.html
Copyright © 2011-2022 走看看