第一次将view中列表提交到controller,尝试了下,还是可以的

要传输的实体类

    /// <summary>
/// 用于展示的角色类
/// </summary>
public class Action4Role
{
/// <summary>
/// 行为Id
/// </summary>
public string ActionId { get; set; }
/// <summary>
/// 角色Id
/// </summary>
public string RoleId { get; set; }
/// <summary>
/// 角色名字
/// </summary>
public string ActionName { get; set; }
/// <summary>
/// 所属项目名称
/// </summary>
public string ApplicationName { get; set; }
/// <summary>
/// 是否授权
/// </summary>
public bool IsAuthorize { get; set; }
}

get请求

        public ActionResult ActionRole(string RoleId)
{
var allActions = PowerService.GetActions().ToList();
var role = new Role4Select() { Id = RoleId };
var roles = PowerService.GetRoles(role).ToList();
ViewData["RoleName"] = PowerService.GetRoleById(RoleId).Name;
return View(roles);
}
@model List<DTOs.Role.Action4Role>

@{
ViewBag.Title = "ActionRole";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>行为角色</h2>
@using (Html.BeginForm("ActionRole", "Power", FormMethod.Get))
{
<div class="form-group">
<div class="col-md-10">
<p>@ViewData["RoleName"]</p>
</div>
</div>
}
@using (Html.BeginForm("SaveActionRoleList", "Power", FormMethod.Post))
{
<table class="table">
<tr>
<th>
全选<input type="checkbox" id="checkAll" />
</th>
<th>
行为
</th>
<th>
</th>
</tr> @for (int i = 0; i < Model.Count() ; i++)
{
@Html.HiddenFor(model => model[i].ActionId)
@Html.HiddenFor(model => model[i].RoleId)
@Html.HiddenFor(model => model[i].ApplicationName)
<tr>
<td>
@Html.CheckBoxFor(model => model[i].IsAuthorize)
</td>
<td>
@Html.DisplayTextFor(model => model[i].ActionName) </td>
</tr>
}
</table>
<div class="form-group">
<div class="col-md-offset-2 col-md-10 pull-left">
<input type="submit" value="保存" class="btn btn-default" />
</div>
</div>
}
<script src="~/Scripts/jquery-2.1.1.min.js"></script>
<script>
$(function () {
$('#checkAll').change(function () {
var isAll = document.getElementById('checkAll').checked;
$checkBoxs = $('input[type="checkbox"]').each(function () {
$(this).prop("checked", isAll);
})
})
})
</script>

post请求

        [AcceptVerbs(HttpVerbs.Post)]
public ActionResult SaveActionRoleList([Form]IEnumerable<Action4Role> actionList)
{
var roleId = actionList.First().RoleId;
var IsAuthRoleIds = actionList.Where(a => a.IsAuthorize).Select(a => a.ActionId);
var NoAuthRoleIds = actionList.Where(a => !a.IsAuthorize).Select(a => a.ActionId);
PowerService.RoleAddAction(roleId, IsAuthRoleIds.ToArray());
PowerService.RoleDeleteAction(roleId, NoAuthRoleIds.ToArray());
return RedirectToAction("RoleList");
}

以前总以为Model和字典在view和controller之间的通讯没有太多区别,也通过这个需求加深了对Model的理解.

加油,相信自己,明天可以的!

view向controller提交列表的更多相关文章

  1. ASP.NET MVC View向Controller提交数据

    我们知道使用MVC的一个很重的的用途就是把Controller和View之间进行解耦,通过控制器来调用不同的视图,这就注定了Controller和View之间的传值是一个很重的知识点,这篇博文主要解释 ...

  2. 从View向Controller传递复杂类型Json

    mvc给我们提供多种controller中读取view数据的方法 1.从Ruquest["name"]中直接读取 2.将表单中name名称直接写在Action的参数列表中 3.将表 ...

  3. Spring MVC基础知识整理➣View与Controller数据交互

    概述 Spring MVC是由View—Controller—Model组成,其中View和Controller的数据交互,成为了关注的核心点.MVC中,我们将View中的数据传递到Controlle ...

  4. 1、ASP.NET Core2.0之Model、View、Controller

    一.新建空项目 打开VS2017,新建→项目,选择如下: 点击,确定,弹出的界面选择如下: 选择空项目,因为选择其他的话会自动生成很多用不到的类,显得项目不够“清爽”,ASP.NET Core选择2. ...

  5. 【MVC架构】——怎样利用Json在View和Controller之间传递数据

    在MVC架构中,尽管非常多东西和三层非常相似,可是也有非常大的差别.就比方传递数据.在三层架构中,传递数据就仅仅要一层返回,另外一层用同样类型的变量来接收即可了.在MVC中,事实上原理是一样的,Con ...

  6. MVC 从View像Controller中传值

    在上一篇博客中总结了一下从Controller像View中传值的几种方法.事实上看那些方法和在我们最初学习VB的时候一样,将数据库中的数据显示到前台的页面.数据库还是那个数据库,仅仅是如今前台变成了浏 ...

  7. View 与 Controller 之间的delegate(代理)传值

    这个代理传值是经常使用的一种传值方式,下面介绍一种View 和 Controller 之间的代理传值方法. 先建立一个View视图 如 LoginView 是继承于一个UIView 在LoginVie ...

  8. AngularJS in Action读书笔记2——view和controller的那些事儿

    今天我们来818<angularjs in action>的第三章controller和view. 1.Big Picture概览图 View是angularjs编译html后呈现出来的, ...

  9. MVC(Model(模型) View(视图) Controller(控制器))

    复习 1.      商品表 增删改查 index.php  add.php   view.php   edit.php   action.php 2.      MVC(Model(模型)  Vie ...

随机推荐

  1. 循序渐进做项目系列(4)迷你QQ篇(2)——视频聊天!(附源码)

    一·效果展示 源码派送:MiniQQ1.1 文字聊天的实现参见:循序渐进做项目系列(3):迷你QQ篇(1)——实现客户端互相聊天 二·服务端设计 对于实现视频聊天而言,服务端最核心的工作就是要构造多媒 ...

  2. ASP.NET MVC 5 - 给电影表和模型添加新字段

    在本节中,您将使用Entity Framework Code First来实现模型类上的操作.从而使得这些操作和变更,可以应用到数据库中. 默认情况下,就像您在之前的教程中所作的那样,使用 Entit ...

  3. 《Entity Framework 6 Recipes》中文翻译系列 (9) -----第二章 实体数据建模基础之继承关系映射TPH

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 2-10 Table per Hierarchy Inheritance 建模 问题 ...

  4. DDN - Digital Data Network

    DDN(Digital Data Network,数字数据网)是一种利用光纤.数字微波或卫星等数字传输通道和数字交叉复用设备组成的数字数据传输网.它可以为用户提供各种速率的高质量数字专用电 数字数据网 ...

  5. WPF入门教程系列二十二——DataGrid示例(二)

    DataGrid示例的后台代码 1)  通过Entity Framework 6.1 从数据库(本地数据库(local)/Test中的S_City表中读取城市信息数据,从S_ Province表中读取 ...

  6. angularjs自动化测试系列之karma

    angularjs自动化测试系列之karma karma test with jasmine 更好的利用工具是为了让生活更美好. 需要安装的东西: npm install karma -g mkdir ...

  7. eCharts动态加载各省份的数据

    假如从数据库读出以下数据,如何将数据展示在地图之上 1.部门的名称数据: List deptname=[联通事业部-上海联通项目组, 联通事业部-河南联通项目组, 联通事业部-贵州联通项目组, 联通事 ...

  8. 设置Distribution clean up 每次删除Command的数量

    Replication Job “Distribution clean up: distribution” 默认设置是,每10minutes运行一次,每次删除2000个Command.这对于有1.9亿 ...

  9. iOS运行时编程(Runtime Programming)和Java的反射机制对比

    运行时进行编程,类似Java的反射.运行时编程和Java反射的对比如下:   1.相同点   都可以实现的功能:获取类信息.属性设置获取.类的动态加载(NSClassFromString(@“clas ...

  10. 深入理解DOM节点类型第四篇——文档片段节点DocumentFragment

    × 目录 [1]特征 [2]作用 前面的话 在所有节点类型中,只有文档片段节点DocumentFragment在文档中没有对应的标记.DOM规定文档片段(document fragment)是一种“轻 ...