abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之增删改视图(八)
abp(net core)+easyui+efcore实现仓储管理系统目录
abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一)
abp(net core)+easyui+efcore实现仓储管理系统——解决方案介绍(二)
abp(net core)+easyui+efcore实现仓储管理系统——领域层创建实体(三)
abp(net core)+easyui+efcore实现仓储管理系统——定义仓储并实现 (四)
abp(net core)+easyui+efcore实现仓储管理系统——创建应用服务(五)
abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之控制器(六)
abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之列表视图(七)
在这一篇文章(abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之列表视图(七))中我们创建一个使用Razor视图引擎的视图模板文件,Razor视图模板文件的扩展名为.cshtml,并提供一种比较优雅的方式使用C#来创建HTML输出。Razor视图模板减少了编写程序所需要输入的字符数量和敲击键盘的次数,并实现了快速、流畅的编码工作。下面添加更新视图、删除视图、新增视图的具体步骤:
三、创建更新视图
在ASP.NET MVC的默认模板中,更新视图是通过“Edit”标签,使用“asp-route-id”属性在浏览器中生成指向Views\Module\Edit.cshtml 视图的链接。具体代码如下。
<a asp-action="Edit" class="waves-effect waves-block" asp-route-id="@item.Id"><i class="material-icons">edit</i>@L("Edit")</a>
1) 在Visual Studio 2017的解决方案资源管理器中,使用鼠标右键单击“Module”文件夹,然后选择“添加” > “新建项…”。 在“添加新项-ABP.TPLMS.Web.Mvc”对话框中,选择“Razor视图”,并将名称命名为Edit.cshmtl。在此视图中添加如下代码。
@using ABP.TPLMS.Web.Startup @model ABP.TPLMS.Web.Models.Module.EditModuleModalViewModel @{ ViewData["Title"] = "Edit"; } <h2>Edit</h2> <h4>模块编辑</h4> <hr /> <div class="row"> <div class="col-md-4"> <form asp-action="Edit"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <input type="hidden" asp-for="@Model.Module.Id" /> <div class="form-group"> <label asp-for="@Model.Module.Name" class="control-label"></label> <input asp-for="@Model.Module.Name" class="form-control" /> <span asp-validation-for="@Model.Module.Name" class="text-danger"></span> </div> <div class="form-group"> <label asp-for="@Model.Module.DisplayName" class="control-label"></label> <input asp-for="@Model.Module.DisplayName" class="form-control" /> <span asp-validation-for="@Model.Module.DisplayName" class="text-danger"></span> </div> <div class="form-group"> <label asp-for="@Model.Module.Url" class="control-label"></label> <input asp-for="@Model.Module.Url" class="form-control" /> <span asp-validation-for="@Model.Module.Url" class="text-danger"></span> </div> <div class="form-group"> <label asp-for="@Model.Module.HotKey" class="control-label"></label> <input asp-for="@Model.Module.HotKey" class="form-control" /> <span asp-validation-for="@Model.Module.HotKey" class="text-danger"></span> </div> <div class="form-group"> <label asp-for="@Model.Module.IconName" class="control-label"></label> <input asp-for="@Model.Module.IconName" class="form-control" /> <span asp-validation-for="@Model.Module.IconName" class="text-danger"></span> </div> <div class="form-group"> <label asp-for="@Model.Module.RequiredPermissionName" class="control-label"></label> <input asp-for="@Model.Module.RequiredPermissionName" class="form-control" /> <span asp-validation-for="@Model.Module.RequiredPermissionName" class="text-danger"></span> </div> <div class="form-group"> <label asp-for="@Model.Module.RequiresAuthentication" class="control-label"></label> <input asp-for="@Model.Module.RequiresAuthentication" type="checkbox" /> </div> <div class="form-group"> <label asp-for="@Model.Module.ParentName" class="control-label"></label> <input asp-for="@Model.Module.ParentName" class="form-control" value="根目录"/> <span asp-validation-for="@Model.Module.ParentName" class="text-danger"></span> </div> <div class="form-group"> <input type="submit" value="Save" class="btn btn-default" /> </div> </form> </div> </div> <div> <a asp-action="Index">Back to List</a> </div> @section Scripts { @{await Html.RenderPartialAsync("_ValidationScriptsPartial");} }
四、创建删除视图
如果你使用过ASP.NET MVC的进行过应用开发,那么你就知道删除视图是通过“Delete”标签,使用“asp-route-id”属性在浏览器中生成指向Views\Module\Delete.cshtml 视图的链接。具体代码如下。
<a asp-action="Delete" class="waves-effect waves-block" asp-route-id="@item.Id"><i class="material-icons">delete_sweep</i>@L("Delete")</a>
1) 在Visual Studio 2017的解决方案资源管理器中,使用鼠标右键单击“Module”文件夹,然后选择“添加” > “新建项…”。 在“添加新项-ABP.TPLMS.Web.Mvc”对话框中,选择“Razor视图”,并将名称命名为Delete.cshmtl。在删除视图文件中添加如下代码。
@using ABP.TPLMS.Web.Startup @model ABP.TPLMS.Web.Models.Module.EditModuleModalViewModel @{ ViewData["Title"] = PageNames.Module; } <h2>删除模块</h2> <h3>Are you sure you want to delete this?</h3> <div> <h4>Cargo</h4> <hr /> <dl class="dl-horizontal"> <dt> @Html.DisplayNameFor(model => model.Module.Name) </dt> <dd> @Html.DisplayFor(model => model.Module.Name) </dd> <dt> @Html.DisplayNameFor(model => model.Module.DisplayName) </dt> <dd> @Html.DisplayFor(model => model.Module.DisplayName) </dd> <dt> @Html.DisplayNameFor(model => model.Module.Status) </dt> <dd> @Html.DisplayFor(model => model.Module.Status) </dd> <dt> @Html.DisplayNameFor(model => model.Module.RequiredPermissionName) </dt> <dd> @Html.DisplayFor(model => model.Module.RequiredPermissionName) </dd> <dt> @Html.DisplayNameFor(model => model.Module.IconName) </dt> <dd> @Html.DisplayFor(model => model.Module.IconName) </dd> <dt> @Html.DisplayNameFor(model => model.Module.ParentName) </dt> <dd> @Html.DisplayFor(model => model.Module.ParentName) </dd> <dt> @Html.DisplayNameFor(model => model.Module.RequiresAuthentication) </dt> <dd> @Html.DisplayFor(model => model.Module.RequiresAuthentication) </dd> <dt> @Html.DisplayNameFor(model => model.Module.Url) </dt> <dd> @Html.DisplayFor(model => model.Module.Url) </dd> </dl> <form asp-action="Delete"> <input type="hidden" asp-for="@Model.Module.Id" /> <input type="submit" value="Delete" class="btn btn-default" /> | <a asp-action="Index">Back to List</a> </form> </div>
五、创建新增视图
在ASP.NET MVC的默认模板中,新增视图是通过“Create”标签,使用asp-action="Create"属性在浏览器中生成指向Views\Module\Create.cshtml 视图的链接。具体代码如下。
<a asp-action="Create" class="btn btn-primary btn-circle waves-effect waves-circle waves-float pull-right"> <i class="material-icons">add</i></a>
1) 在Visual Studio 2017的解决方案资源管理器中,使用鼠标右键单击“Module”文件夹,然后选择“添加” > “新建项…”。 在“添加新项-ABP.TPLMS.Web.Mvc”对话框中,选择“Razor视图”,并将名称命名为Create.cshmtl,代码如下。
@using ABP.TPLMS.Web.Startup @model ABP.TPLMS.Web.Models.Module.EditModuleModalViewModel @{ ViewData["Title"] = "Create"; } <h4>创建模块</h4> <hr /> <div class="row"> <div class="col-md-4"> <form asp-action="Create"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <div class="form-group"> <label asp-for="@Model.Module.Name" class="control-label"></label> <input asp-for="@Model.Module.Name" class="form-control" /> <span asp-validation-for="@Model.Module.Name" class="text-danger"></span> </div> <div class="form-group"> <label asp-for="@Model.Module.DisplayName" class="control-label"></label> <input asp-for="@Model.Module.DisplayName" class="form-control" /> <span asp-validation-for="@Model.Module.DisplayName" class="text-danger"></span> </div> <div class="form-group"> <label asp-for="@Model.Module.Url" class="control-label"></label> <input asp-for="@Model.Module.Url" class="form-control" /> <span asp-validation-for="@Model.Module.Url" class="text-danger"></span> </div> <div class="form-group"> <label asp-for="@Model.Module.HotKey" class="control-label"></label> <input asp-for="@Model.Module.HotKey" class="form-control" /> <span asp-validation-for="@Model.Module.HotKey" class="text-danger"></span> </div> <div class="form-group"> <label asp-for="@Model.Module.IconName" class="control-label"></label> <input asp-for="@Model.Module.IconName" class="form-control" /> <span asp-validation-for="@Model.Module.IconName" class="text-danger"></span> </div> <div class="form-group"> <label asp-for="@Model.Module.RequiredPermissionName" class="control-label"></label> <input asp-for="@Model.Module.RequiredPermissionName" class="form-control" /> <span asp-validation-for="@Model.Module.RequiredPermissionName" class="text-danger"></span> </div> <div class="row clearfix"> <div class="form-group"> <div class="checkbox"> <label asp-for="@Model.Module.RequiresAuthentication"></label> <input asp-for="@Model.Module.RequiresAuthentication" type="checkbox" class="filled-in" checked /> </div> </div> </div> <div class="form-group"> <label asp-for="@Model.Module.ParentName" class="control-label"></label> <input asp-for="@Model.Module.ParentName" class="form-control" value="根目录" /> <span asp-validation-for="@Model.Module.ParentName" class="text-danger"></span> </div> <div class="form-group"> <label asp-for="@Model.Module.Status" class="control-label"></label> <input asp-for="@Model.Module.Status" class="form-control" /> <span asp-validation-for="@Model.Module.Status" class="text-danger"></span> </div> <div class="form-group"> <label asp-for="@Model.Module.SortNo" class="control-label"></label> <input asp-for="@Model.Module.SortNo" class="form-control" /> <span asp-validation-for="@Model.Module.SortNo" class="text-danger"></span> </div> <div class="form-group"> <input type="submit" value="Create" class="btn btn-default" /> </div> </form> </div> </div> <div> <a asp-action="Index">Back to List</a> </div> @section Scripts { @{await Html.RenderPartialAsync("_ValidationScriptsPartial");} }
相关文章
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(1)-前言与目录(转)
- abp(net core)+easyui+efcore实现仓储管理系统——ABP升级7.3下(五十九)
- abp(net core)+easyui+efcore实现仓储管理系统——出库管理之六(五十五)
- abp(net core)+easyui+efcore实现仓储管理系统——出库管理之四(五十三)
- abp(net core)+easyui+efcore实现仓储管理系统——出库管理之三(五十一)
- abp(net core)+easyui+efcore实现仓储管理系统——入库管理之十(四十六)
- abp(net core)+easyui+efcore实现仓储管理系统——ABP WebAPI与EasyUI结合增删改查之八(三十四)
- abp(net core)+easyui+efcore实现仓储管理系统——ABP WebAPI与EasyUI结合增删改查之一(二十七)
- abp(net core)+easyui+efcore实现仓储管理系统——EasyUI之货物管理七(二十五)
- abp(net core)+easyui+efcore实现仓储管理系统——EasyUI之货物管理五 (二十三)
- abp(net core)+easyui+efcore实现仓储管理系统——菜单-上 (十六)
- 如何从40亿整数中找到不存在的一个 webservice Asp.Net Core 轻松学-10分钟使用EFCore连接MSSQL数据库 WPF实战案例-打印 RabbitMQ与.net core(五) topic类型 与 headers类型 的Exchange
- C#中缓存的使用 ajax请求基于restFul的WebApi(post、get、delete、put) 让 .NET 更方便的导入导出 Excel .net core api +swagger(一个简单的入门demo 使用codefirst+mysql) C# 位运算详解 c# 交错数组 c# 数组协变 C# 添加Excel表单控件(Form Controls) C#串口通信程序
- 【转】.NET(C#):浅谈程序集清单资源和RESX资源 关于单元测试的思考--Asp.Net Core单元测试最佳实践 封装自己的dapper lambda扩展-设计篇 编写自己的dapper lambda扩展-使用篇 正确理解CAP定理 Quartz.NET的使用(附源码) 整理自己的.net工具库 GC的前世与今生 Visual Studio Package 插件开发之自动生
- Visual Studio 2017中使用正则修改部分内容 如何使用ILAsm与ILDasm修改.Net exe(dll)文件 C#学习-图解教程(1):格式化数字字符串 小程序开发之图片转Base64(C#、.Net) jquery遍历table为每一个单元格取值及赋值 。net加密解密相关方法 .net关于坐标之间一些简单操作
- C#编译器优化那点事 c# 如果一个对象的值为null,那么它调用扩展方法时为甚么不报错 webAPI 控制器(Controller)太多怎么办? .NET MVC项目设置包含Areas中的页面为默认启动页 (五)Net Core使用静态文件 学习ASP.NET Core Razor 编程系列八——并发处理
- 路由其实也可以很简单-------Asp.net WebAPI学习笔记(一) ASP.NET WebApi技术从入门到实战演练 C#面向服务WebService从入门到精通 DataTable与List<T>相互转换
- C#中的函数式编程:递归与纯函数(二) 学习ASP.NET Core Razor 编程系列四——Asp.Net Core Razor列表模板页面
- Net is as typeof 运行运算符详解 net 自定义泛型那点事
- c# .net的Newtonsoft.Json序列化和反序列化