.net5 core Razor项目实战系列之六:部门管理功能的实现(新增和修改功能)
2021-05-07 02:29
标签:文件 sel text reac 构造函数 space 管理 数据保存 put 本篇实现新增和修改的功能。 在部门列表页增加一个新增按钮,用户点击后弹出一个新增部门的页面 DeptEdit.cshtml, 考虑到修改部门信息的时候可以复用此页面,故在新增的时候传递一个参数 deptid=0, 在列表页每行的末尾增加一个修改按钮,点击的时候调用 DeptEdit.cshtml 页面并传值 deptid=xxx, 这样在DeptEdit.cshtml 页可以通过判断是否 deptid>0 来决定页面是做新增还是修改的操作,列表页的效果如下: DeptList.cshtml页面代码如下(见红色部分): 在Auth文件夹下新增 DeptEdit.cshtml 文件,代码如下: DeptEdit.cshtml.cs中的编码如下: 运行页面,点新增时画面如下: 点修改时画面如下:
当用户输入部门名称后点"保存"按钮,代码如下: .net5 core Razor项目实战系列之六:部门管理功能的实现(新增和修改功能) 标签:文件 sel text reac 构造函数 space 管理 数据保存 put 原文地址:https://www.cnblogs.com/pfm33/p/14725219.html@page
@model AuthManagement.Pages.Auth.DeptListModel
@using AuthManagement.DbUtil.Entity
@{
ViewData["Title"] = "部门管理";
}
"1" width="60%">
"background-color:antiquewhite;height:40px;">
@foreach (TDept item in Model.DeptList) //遍历输出部门信息
{
编号
名称
创建时间
新增部门
"height:30px;">
}
@if (Model.DeptList.Count == 0)
{
@item.DeptId
@item.DeptName
@item.CreateTime
修改
"/Auth/DeptList?deptid=@item.DeptId" target="_self" onclick="return confirm(‘确定要作废吗?‘);">作废
"height:30px;">
}
"4" align="center">没有查询到部门数据!
@page
@model AuthManagement.Pages.Auth.DeptEditModel
@{
Layout = null; //这里不需要使用布局页,设为null就可以了
}
namespace AuthManagement.Pages.Auth
{
public class DeptEditModel : PageModel
{
private readonly AuthDbContext _context;
//构造函数中对AuthDbContext做依赖注入
public DeptEditModel(AuthDbContext context)
{
_context = context;
}
public string SubjectName { get; set; }
public string DeptName { get; set; }
public void OnGet()
{
SubjectName = "新增部门";
DeptName = "";
string deptId = Request.Query["deptid"];
if (int.TryParse(deptId, out int did))
{
if (did > 0)
{
SubjectName = "修改部门";
//如果是修改要初始化部门名称
TDept dept = _context.TDepts.Find(did);
DeptName = dept.DeptName;
}
}
}
}
}
public void OnPost()
{
string deptName = Request.Form["deptname"];
string deptId = Request.Query["deptid"];
if (int.TryParse(deptId, out int did))
{
if (did > 0) //传递过来的deptid值 >0 则修改,否则新增。
{
ModifyDept(did, deptName);
}
else
{
int newDeptId = AddDept(deptName);
deptId = newDeptId.ToString();
}
}
//执行完之后让页面重新加载一下避免用户刷新的时候数据再次回传
Response.Redirect("/Auth/DeptEdit?deptid="+ deptId);
}
//新增部门
private int AddDept(string deptName)
{
TDept dept = new TDept
{
DeptName = deptName,
IsValid = 1,
CreateTime = DateTime.Now
};
_context.TDepts.Add(dept);
_context.SaveChanges(); return dept.DeptId; //返回的部门编号一边刷新页面
}
//修改部门
private void ModifyDept(int deptId, string deptName)
{
//设置序列化时的对中文的编码方式
JsonSerializerOptions options = new JsonSerializerOptions
{
Encoder = JavaScriptEncoder.Create(UnicodeRanges.All),
};
List
//保存数据到t_log表
_context.TLogs.AddRange(logList);
//将更改保存到数据库
_context.SaveChanges();
}
///
文章标题:.net5 core Razor项目实战系列之六:部门管理功能的实现(新增和修改功能)
文章链接:http://soscw.com/index.php/essay/83491.html