view向controller提交列表
第一次将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提交列表的更多相关文章
- ASP.NET MVC View向Controller提交数据
我们知道使用MVC的一个很重的的用途就是把Controller和View之间进行解耦,通过控制器来调用不同的视图,这就注定了Controller和View之间的传值是一个很重的知识点,这篇博文主要解释 ...
- 从View向Controller传递复杂类型Json
mvc给我们提供多种controller中读取view数据的方法 1.从Ruquest["name"]中直接读取 2.将表单中name名称直接写在Action的参数列表中 3.将表 ...
- Spring MVC基础知识整理➣View与Controller数据交互
概述 Spring MVC是由View—Controller—Model组成,其中View和Controller的数据交互,成为了关注的核心点.MVC中,我们将View中的数据传递到Controlle ...
- 1、ASP.NET Core2.0之Model、View、Controller
一.新建空项目 打开VS2017,新建→项目,选择如下: 点击,确定,弹出的界面选择如下: 选择空项目,因为选择其他的话会自动生成很多用不到的类,显得项目不够“清爽”,ASP.NET Core选择2. ...
- 【MVC架构】——怎样利用Json在View和Controller之间传递数据
在MVC架构中,尽管非常多东西和三层非常相似,可是也有非常大的差别.就比方传递数据.在三层架构中,传递数据就仅仅要一层返回,另外一层用同样类型的变量来接收即可了.在MVC中,事实上原理是一样的,Con ...
- MVC 从View像Controller中传值
在上一篇博客中总结了一下从Controller像View中传值的几种方法.事实上看那些方法和在我们最初学习VB的时候一样,将数据库中的数据显示到前台的页面.数据库还是那个数据库,仅仅是如今前台变成了浏 ...
- View 与 Controller 之间的delegate(代理)传值
这个代理传值是经常使用的一种传值方式,下面介绍一种View 和 Controller 之间的代理传值方法. 先建立一个View视图 如 LoginView 是继承于一个UIView 在LoginVie ...
- AngularJS in Action读书笔记2——view和controller的那些事儿
今天我们来818<angularjs in action>的第三章controller和view. 1.Big Picture概览图 View是angularjs编译html后呈现出来的, ...
- MVC(Model(模型) View(视图) Controller(控制器))
复习 1. 商品表 增删改查 index.php add.php view.php edit.php action.php 2. MVC(Model(模型) Vie ...
随机推荐
- 电子商务网站SQL注入项目实战一例
故事A段:发现整站SQL对外输出: 有个朋友的网站,由于是外包项目,深圳某公司开发的,某天我帮他检测了一下网站相关情况. 我查看了页面源代码,发现了个惊人的事情,竟然整站打印SQL到Html里,着实吓 ...
- Redis系列(六)-SortedSets设计技巧
阅读目录: 介绍 Score占位 更多位信息 总结 介绍 Redis Sorted Sets是类似Redis Sets数据结构,不允许重复项的String集合.不同的是Sorted Sets中的每个成 ...
- IEEE754、VAX、IBM浮点型介绍和.NET中互相转换
[题外话] 最近在做C3D文件的解析,好奇怪的是文件中竟然存储了CPU的类型,原本不以为然,结果后来读取一个文件发现浮点数全部读取错误.查了下发现虽然在上世纪80年代就提出了IEEE754要统一浮点数 ...
- hibernate学习笔记之四 Hibernate的增删改查
采用JUnit测试,继承TestCase import java.util.Date; import junit.framework.TestCase; import org.hibernate.Se ...
- IL指令汇总
名称 说明 名称 说明 Add 将两个值相加并将结果推送到计算堆栈上. Ldelem.I1 将位于指定数组索引处的 int8 类型的元素作为 int32 加载到计算堆栈的顶部. Add.Ovf ...
- 【JQ+锚标记实现点击页面回到顶部】
前言:今天想写个页面常用到的[点击回到页面顶部或是首页的功能],生活和职场一样,总会有低谷的时候,这个时候咱也别怂.别怂.别怂,说三遍!那都不是事,工作没了,再找呗,就像我上周五,团队解散那天,我是笑 ...
- Java基础-输入输出-3.编写BinIoDemo.java的Java应用程序,程序完成的功能是:完成1.doc文件的复制,复制以后的文件的名称为自己的学号姓名.doc。
3.编写BinIoDemo.java的Java应用程序,程序完成的功能是:完成1.doc文件的复制,复制以后的文件的名称为自己的学号姓名.doc. try { FileInputStream in = ...
- Nhibernate 4.0 教程入门
Nhibernate 4.0 教程 目录 1. 下载Nhibernate 4.04. 1 2. 入门教程... 2 3. 测试项目详解... 3 4. 总结.. ...
- JS-underfined is not a function
- Routing 功能概述 - 每天5分钟玩转 OpenStack(98)
路由服务(Routing)提供跨 subnet 互联互通功能. 例如前面我们搭建了实验环境: cirros-vm1 172.16.100.3 vlan100 cirros-vm ...