ASP.NET ZERO 学习 —— (9) 应用开发Demo之工程创建
来源:互联网 发布:mac os x怎么下载 编辑:程序博客网 时间:2024/05/19 15:39
介绍
本Demo是通过使用ASP.NET Zero创建一个电话簿的应用。本Demo会用到多租户,多语言,权限,配置,测试等模块。
创建工程
打开ASP.NET Zero项目,可以看到解决方案中包含了6个项目:
Nuget还原,数据库迁移完成后,运行并登录后可以看到以下界面:
现在注销。我们将应用改为单租户模式(后面将改为多租户)。所以,我们打开 XXXCoreModel 类,通过以下代码禁用多租户功能:
[DependsOn(typeof(AbpZeroCoreModule))]public class PhoneBookCoreModule : AbpModule{ public override void PreInitialize() { //Enable this line to create a multi-tenant application. //Configuration.MultiTenancy.IsEnabled = true; }}
添加一个新页面
首先在首页添加一个“Phone book”的页面
定义菜单项
MpaNavigationProvider 类用来定义菜单,当我们改变这个类后,菜单将自动的改变。打开这个类并按下面代码那样添加一个菜单项
.AddItem(new MenuItemDefinition( PageNames.App.Tenant.PhoneBook, L("PhoneBook"), url: "Mpa/PhoneBook", icon: "glyphicon glyphicon-book" ))
每个菜单项都必须有一个唯一的名字作为标识。菜单名在PageNames类里面进行定义。我们添加一个叫“PhoneBook”的常量。
本地化菜单显示名
菜单项也应该有一个本地化的显示名,它用来在页面上显示菜单项。L(“PhoneBook”)就是用来本地化显示新菜单项的名字。L 是一个帮助方法,用来根据唯一标识来获取本地化字符串(见 MpaNavigationProvider 类)。
本地化字符串在.Core项目中的XML文件中定义,如下所示:
打开 AbpZeroTemplate.xml(默认语言,英语本地化配置)添加下面的代码:
<text name="PhoneBook" value="Phone book" />
如果我们没有定义”PhoneBook”的其他语言版本, 默认值将显示在所有语言版本中。我们可以在中文本地化配置文件AbpZeroTemplate-zh-CN.xml中添加以下代码:
<text name="PhoneBook" value="Phone book" />
其他菜单属性
url 是当我们点击菜单项后所需要跳转到的地址(这里是MVC Action)
最后,icon 是菜单项的图标。它可以是一个 css 类。我们可以使用Glyphicon, Font-Awesome或其他CSS 字体库。
见导航文档了解更多菜单定义。
创建页面
当我们创建完菜单项后,我们可以创建一个空页面。
Controller
在Web项目Areas/Mpa/Controllers文件夹下,创建PhoneBookController
public class PhoneBookController : AbpZeroTemplateControllerBase{ // GET: Mpa/PhoneBook public ActionResult Index() { return View(); }}
我们PhoneBookController 的基类改为AbpZeroTemplateControllerBase,如果我们从Controller派生它也会正常运行,只是AbpZeroTemplateControllerBase提供了更多有用的属性和方法。所以,除非在你的案例中有其他不利的影响,我们总是从AbpZeroTemplateControllerBase进行派生。
View
在Areas/Mpa/Views/PhoneBook文件夹下创建一个空的View, Index.cshtml
@using MyCompanyName.AbpZeroTemplate.Web.Navigation@{ ViewBag.CurrentPageName = PageNames.App.Tenant.PhoneBook;}<div class="row margin-bottom-5"> <div class="col-xs-12"> <div class="page-head"> <div class="page-title"> <h1> <span>@L("PhoneBook")</span> </h1> </div> </div> </div></div><div class="portlet light"> <div class="portlet-body"> <p>电话薄内容</p> </div></div>
ViewBag.CurrentPageName 设置为当前页面名字,当页面被激活后将会高亮显示。运行后如下图所示:
菜单的显示名字和标题都是本地化的。
注意:需要访问MPA的路径,localhost:6240/map/welcome
- ASP.NET ZERO 学习 —— (9) 应用开发Demo之工程创建
- ASP.NET ZERO 学习 —— (10) 应用开发Demo之创建实体对象
- ASP.NET ZERO 学习 —— (11) 应用开发Demo之创建应用服务
- ASP.NET ZERO 学习 —— (12) 应用开发Demo之测试应用服务
- ASP.NET ZERO 学习 —— (13) 应用开发Demo之页面呈现Person数据
- ASP.NET ZERO 学习 —— (14) 应用开发Demo之新建People
- ASP.NET ZERO 学习 —— (15) 应用开发Demo之授权
- ASP.NET ZERO 学习 —— (16) 应用开发Demo之删除用户
- ASP.NET ZERO 学习 —— (17) 应用开发Demo之筛选
- ASP.NET ZERO 学习 —— (18) 应用开发Demo之扩展电话信息
- ASP.NET ZERO 学习 —— (3) 开发手册之介绍和MVC 应用前端
- ASP.NET ZERO 学习 —— (5) 开发手册之ANGULAR后台单页面应用
- ASP.NET ZERO 学习 —— (6) 开发手册之MVC后台多页面应用及迁移控制台程序
- ASP.NET ZERO 学习 —— (4) 开发手册之AccountController
- ASP.NET ZERO 学习 —— (7) 开发手册之基础架构
- ASP.NET ZERO 学习 —— (8) 开发手册之基于令牌的身份认证&其他
- Asp.net MVC 3实例学习之ExtShop(一)————创建应用并设置开发环境
- ASP.NET ZERO 学习 —— (1) 介绍
- MySQL 1067 错误和1045错误的完美解决
- maven打成jar包,怎么跳过测试代码
- POJ 1416-Shredding Company(DFS-分割数字)
- 插入排序
- fatal error LNK1112: 模块计算机类型“X64”与目标计算机类型“x86”冲突_(解决方案)
- ASP.NET ZERO 学习 —— (9) 应用开发Demo之工程创建
- IP地址、子网掩码、网络号、主机号、网络地址、主机地址
- ES6新增(2)
- Android Studio 中如何引入 layoutlib.jar?
- bootstrap遇到的坑col
- JS产生随机数的几个用法!
- 0000
- static的作用
- iOS开源项目周报0302