适用于初学者的ASP.NET MVC三层架构Web应用程序 – 第三部分






3.79/5 (13投票s)
适用于初学者的ASP.NET MVC三层架构Web应用程序 – 第三部分
引言
在第一篇文章中,我们了解了需求,然后将其分解为对象,找出它们之间的关系,最后设计和实现了数据库。好消息是,我们的第一篇文章赢得了 2014年11月最佳文章奖。
在第二篇文章中,我们学习了如何创建一个解决方案,然后向其中添加多个项目,并为相应的项目添加所需的引用。因此,我们的业务对象层最终完成了。现在,让我们快速回顾一下我们目前为止开发的内容,即我们的后端、业务对象层已经完成。
3:实现所有层(UI原型设计)
现在,在这篇文章中,我们将使用ASP.NET MVC来实现我们的UI(用户界面)。
为了实现这一点,我们需要再次回顾角色和职责
角色
- 用户
- 可以浏览URL
- 可以注册
- 可以提交URL
- Admin
- 可以CRUD(创建、读取、更新和删除)类别
- 可以查看所有用户
- 可以批准或拒绝URL
牢记以上所有信息,假设我们已经设计了一个原型,您可以称之为UI原型。
让我们来看看
主页,或者您可以称之为仪表板,某种我想要展示的日历。通常,所有用户都可以访问此主页。无论是管理员/用户/任何人。这是一个公共页面。
类别页面
我可以在此页面创建类别。通常,只有管理员应该访问此页面。
列出类别页面
此页面也仅由管理员访问。管理员可以看到他创建的所有类别。
注册页面
任何用户都可以注册。每个人都可以访问此页面。
提交URL页面
用户注册后,就可以提交URL。只有注册用户才能访问此页面。您可以说只有角色为“U”的用户才能访问。
批准URL页面
用户提交URL后,该URL将反映给管理员。管理员可以查找已提交的URL,然后管理员可以选择一些URL并批准或拒绝。一旦批准,它将在“浏览URL”中可用。
此页面仅由管理员或角色为“A”的用户访问
浏览URL页面
任何人都可以访问此页面。任何人都可以来浏览可用的URL。
列出用户页面
此页面仅供管理员使用
登录页面
管理员或现有用户可以从这里登录。
现在,我将把它分解为模块。
总共有九个页面。
- Home
- 类别
- 列出类别
- Register
- 提交URL
- 批准URL
- 浏览URL
- 列出用户
- 登录
基本上,这是我们的流程。我将把它分解为各个模块。
UI模块
- 用户
- 可以提交URL
在成为用户之前,他是一个访客,注册后就可以提交URL。
- 可以提交URL
- Admin
- 可以创建类别
- 可以列出类别
- 可以列出用户
- 可以批准URL
- 公共(无需登录)
- Home
- 浏览URL
- 安全
- 登录
- Register
所以,基本上我得到了四个模块,所有的页面都转移到了这些模块中。在我们以前的ASP.NET Web Forms中,我们通常会创建四个不同的文件夹(User、Admin、Common和Security)并将相关的aspx页面添加到这些文件夹中。但是,这里没有文件夹的概念。取而代之的是,我们有区域(Areas)的概念。我可以在每个模块中添加一个区域。
现在,如果我们创建区域会发生什么?
用户模块的SubmitURL页面的URL将如下所示:BaseURL/User/SubmitURL
管理员模块的示例
同样,我们也有Common和Security。
公共模块的示例
安全模块的示例
在我们的MVC中,我们谈论的是区域。我将创建4个区域。我称之为4个UI区域。
让我们看看如何在MVC中创建这些区域。
要创建一个区域,请右键单击LinkHubUI -> 添加 -> 区域。
添加公共区域
在MVC5中处理区域变得非常容易。以前我们需要编写配置设置,如下所示。
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Common_default",
"Common/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
而现在您的MVC会自动处理所有URL路由设置。您可以看到,在区域中,我有了Common。Common具有Controllers、Models和Views的结构,即MVC。
CommonAreaRegistration.cs是URL路由文件。以前我们需要编写URL路由代码。但在MVC5中,它会自动创建。
现在,让我快速为(User、Security和Admin)添加另外三个区域。
重建项目,然后重建解决方案。
我们已完成在MVC中添加区域。
接下来,我需要为相应的区域添加所有控制器。
让我们看看如何创建控制器。我们如何知道需要创建多少个控制器?如何决定一个控制器应该包含多少个操作?
这很简单,让我们看看SubmitURL页面。我如何为此定义控制器以及该控制器中的操作?
我们将在下一篇文章中介绍。
感谢阅读。