学习MVC之租房网站(五)-权限、角色、用户管理

news/2024/5/10 21:02:06/文章来源:https://blog.csdn.net/weixin_30249203/article/details/99025758

在上一篇<学习MVC之租房网站(四)-实现Service层并进行单元测试>中,记录了实现Service层并进行单元测试的过程,接下来该到“正题”-MVC了,也就是UI层的开发。

网站分为前台、后台两部分,因为后台涉及到一些在业务上来说基础的东西,比如用户管理、房源编辑等,所以先完成后台UI即AdminWeb项目。那么就从权限、角色、用户这一块开始了。

 


 

一、用户管理

只通过对与用户管理相关的功能的开发,来回顾MVC的基本操作。

1. Controller

添加AdminUserController,添加List动作以查找并展示所有的用户列表,在List动作中要调用AdminUserService.GetAll()方法,但不会直接调用。之前已经准备好了IService层,还要在Application_Start中设置Autofac为ASP.NET MVC的默认解析器,以后所有的Controller将由Autofac管理。

用户的增删改查要涉及到用户所在的城市、所属的角色,所以除了AdminUserService,AdminUserController还会调用CityService和RoleService中的方法,那么就把这三个接口声明为属性,Autofac解析控制器时会自动为这些属性注入对应的实现类,到这儿开始对IOC的优势有点体会了。

然后,如果要查找用户列表,只需_AuService.GetAll()。

2. Model

List方法如下:

GetAll()返回的是AdminUserDTO[],于是就直接把AdminUserDTO[]结果集送给View了,这儿并没有指定专门的Model,而且DTO(Data Transfer Object)的本意就是用来转运数据的,由此可见理论与实践的差别,要善于变通而不是恪守理论。

3. View

视图文件使用了VS自带的razor模板引擎,文件后缀为.cshtml,没用过其它模板引擎,但至少跟aspx相比还是让人相当“眼前一亮”的,眼前一亮要加引号,是因为想到razor出来已经很多年了,当年最早的razor使用者们的感受应该会是眼前一亮吧,而若干年后的某一天,菜鸟在看到razor时的感受想必与他们也非常类似,由此幻想跨越时空,感叹技术的日新月异。

但我也是谨遵古训,尽量离@HtmlHelper控件远一点,多使用原始的Html元素。在头部要写清楚传过来的Model为AdminUserDTO[],而且生成的最终html文件的title为Admin List

 

套用的模板为H-ui,看起来挺好的

 

 


 

二、细节和体会

过程中,有一些细节和收获也记录一下

1. 为了预防CSRF攻击,Ajax的GET请求被禁用,所以Ajax请求不要忘了设置为POST类型。关于CSRF有待学习。

2. 之前一直不明白MVC项目为什么在View文件夹下还有一个web.config,现在知道了他的作用之一便是为了给cshtml中的代码指定命名空间

3. 现代浏览器多有预加载功能,一些直接写在html属性的超链接可能被浏览器提前执行,所以删除等操作最好写在事件中

4. 看一些例子,有时一个视图会有多个Model,本次项目也有不少这样的情况,例如AdminUserAddModel与AdminUserAddViewModel,Model是用来在Controller与View之间交互数据的,分成两个Model时,一般是为了应对展示的数据(GET)与保存的数据(POST)存在差异的情况,如AdminUserAddModel用于保存(View->Controller),AdminUserAddViewModel用于展示(Controller->View)。

 

注:

课程内容来自如鹏网(www.rupeng.com),专注于大学生就业的在线教育平台;

ASP.NET MVC课程 http://www.rupeng.com/News/9/640.shtml

 

欢迎关注我的个人公众号【菜鸟程序员成长记】

 

转载于:https://www.cnblogs.com/zhixin9001/p/6747792.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_770526.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从零开始用 Flask 搭建一个网站(一)

转自&#xff1a;https://blog.csdn.net/jpush/article/details/69946646 前言 笔者之前未接触过 Python&#xff0c;只是略懂一点前端&#xff0c;所以说从零开始也相差无几吧。Flask 是一个轻量级的基于 Python 的框架&#xff0c;但是扩展性非常良好&#xff08;Github 上 2…

从零开始创建属于自己的网站(转)

准备域名 如果已经有域名的用户可以跳过这一步&#xff0c;如果没有的话可以在万网购买&#xff0c;.com等国际域名大约在39元/年&#xff0c;部分国内域名仅需要9元。准备服务器 如果已经有服务的用户也可以跳过这一步&#xff0c;如果没有的话可以选择购买阿里云的服务器。如…

如何发布网站

1. 购买域名 2. 登录阿里云&#xff0c;到阿里云的控制台&#xff0c;域名与网站 --域名中解析 二。填写内容&#xff0c;注意记录值使用外网的ip地址 三&#xff0c;配置iis&#xff0c;一个端口可以配置多个域名 转载于:https://www.cnblogs.com/haigui-zx/p/9081826.html

网站优化:浏览器缓存控制简介及配置策略

说在开头 《高性能建站指南》看了很多遍&#xff0c;一直没有搞清楚缓存这一块。。什么expired,last-modified,eTag等等&#xff0c;自己只是知道&#xff0c;并没有深入了解&#xff0c;在http请求中&#xff0c;这些字段是如何判断是否需要从服务端重新拿文件还是利用缓存。看…

最有利于网站优化的关键词选择技巧

服务器监控维护工具 网站关键词选择的好与坏直接关系着SEO优化的最终结果。个人认为关键词的选择是整个优化项目中最重要也是最关键的一步&#xff0c;如果你从这一步就开始跑偏&#xff0c;那么后期你的内部和外部优化做的再好再完美也都只是在浪费时间而已&#xff0c;所以咱…

国外程序员经常用的二十八个学习网站

无论你是想转行&#xff0c;成为一名全职程序员&#xff0c;或者想尝试打造一个网站或应用程序&#xff0c;或者只是希望提高了你的技能&#xff0c;学习代码无疑是每个程序员都绕不开的一关。尽管作为一个程序员可能不适合每一个人&#xff0c;但是还是有很多网站适合来提高自…

python使用flask和bootstrap制作网站

前言 在讲之前先讲一个别的&#xff0c;今天刚上csdn的时候竟然发现在排名那里不是千里之外了&#xff0c;这么一个历史性的时刻应该记录一下。 现在正好是20000&#xff0c;&#xff2f;&#xff08;∩&#xff3f;∩&#xff09;&#xff2f;哈哈&#xff5e; 下面开始讲正…

.NET 发布网站步骤

本文章分为三个部分: web网站发布、IIS6 安装方法、ASP.NET v4.0 安装方法 一、web网站发布 1.打开 Visual Studio 2013 编译环境 2.在其解决方案上右击弹出重新生成解决方案,以查看是否有错误 3.如果项目没有错误右击WebUI层发布 4.这样将会看到以下界面 5.在配置文件中新建配…

php企业建站源码

php企业建站源码 1 <?php2 session_start();3 include "./admin/config.php";4 include "./right/sql.php";5 ?>6 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-t…

《SEO的艺术(原书第2版)》——2.6 垂直搜索引擎

2.6 垂直搜索引擎 垂直搜索&#xff08;Vertical Search&#xff09;这一术语有时候被人们用来表示以有限的数据集为中心的专用或者特殊的搜索引擎。主流搜索引擎提供的垂直搜索解决方案包括图片、视频、新闻和博客等方面的搜索。这些功能都是这些供应商的标准服务&#xff0c;…

电商总结(八)如何打造一个小而精的电商网站架构

前面写过一些电商网站相关的文章&#xff0c;这几天有时间&#xff0c;就把之前写得网站架构相关的文章&#xff0c;总结整理一下。把以前的一些内容就连贯起来&#xff0c;这样也能系统的知道&#xff0c;一个最小的电商平台是怎么一步步搭建起来的。对以前的文章感兴趣的朋友…

IIs网站管理配置

1.首先打开自己的控制面板--程序和功能&#xff0c;然后点击‘打开或关闭windows功能’ 2.选择如上图所示的界面&#xff0c;点击确定 在配置成功IIs网站管理服务之后&#xff0c;就进入关键性的时刻 3.右键点击计算机选择‘管理’--“Internet”信息服务管理器 进入iis界面…

常用的软件、网站

前言 整理一下可能常常会使用的软件和服务平台&#xff0c;顺序不分先后 1.编辑类软件 MacDown&#xff1a;要写简历了&#xff0c;要用了&#xff0c;哈哈&#xff0c;平时上传到github的内容也可以现在MacDown上写好&#xff0c;再粘贴到github上传印象笔记&#xff1a;平时记…

随时查看源码的网站---http://www.sooset.com/

由于工作需要经常要在Windows平台下参阅linux源码&#xff0c;以前都用http://lxr.linux.no/来浏览源码&#xff08;如下图所示&#xff09;,最近发现sooset来浏览更方便&#xff0c;所以介绍给大家分享。导航栏用起来很方便&#xff0c;不是吗&#xff1f;呵呵更多详情请参考&…

抢券爬虫软件有哪些_亿联时代网络讲解影响爬虫访问网站的因素有哪些

关于今天这个知识点&#xff0c;要想搞明白影响爬虫访问网站的因素&#xff0c;首先我们要知道爬虫抓网站的方式和收录原理是什么。深圳网站优化经过大量的实验及互联网经验得出蜘蛛爬虫的抓取方式一般是&#xff1a;抓取-漫游式(多线式)-下载内容、提取链接。亿联时代网络讲解…

【从0開始Tornado建站】发表文章和评论

先上个效果图&#xff1a; 这是每一个用户的主页。由于是基本功能。所以用户头像。爱好等信息都还没有&#xff0c;在下一阶段加上。右側“发表新文章”按钮点击后进入发表文章的页面&#xff1a; 之前尝试过一些开源的富文本编辑器widgEditor和百度的ueditor&#xff0c;总感觉…

python设计网站

系统概要说明 现在&#xff0c;随着物联网以及网络技术的飞速发展&#xff0c;互联网已经成为了人们发布与获取信息的重要途径之一&#xff0c;所以通过老师要求&#xff0c;我们设计了一个普通的公司管理信息系统网站。这网站的具有的功能有注册&#xff0c;登录&#xff0c;注…

html背景图片加载慢,javascript – 如何加快我网站的背景图片加载速度?

我正在努力提高website的性能.在Chrome DevTools中,我看到bg2.jpg的请求在开始下载时被延迟了.我认为这种情况正在发生,因为我使用JavaScript生成URL并将其设置为CSS中的背景图像,Chrome浏览器正在优先处理包含此代码的脚本标记.let bgImgName "bg" Math.floor(Mat…

《大型网站技术架构》读书笔记四:瞬时响应之网站的高性能架构

此篇已收录至《大型网站技术架构》读书笔记系列目录贴&#xff0c;点击访问该目录可获取更多内容。 一、网站性能测试 &#xff08;1&#xff09;性能测试指标&#xff1a;①响应时间&#xff1b;②并发数&#xff1b;③吞吐量&#xff1b;④性能计数器&#xff1b; &#xff0…

ssh框架点击按钮就404_深挖网站404页面问题

404页面&#xff0c;指显示网站错误链接的页面&#xff0c;可能是访问的页面不存在&#xff0c;也可能是页面已经删除了。出现404异常状态&#xff0c;用户体验可能不佳&#xff0c;但可喜的是404页面能缓解用户的焦虑和挫败感。网站改版成为满足业务需要和提升用户体验的必经之…