ASP.NET ZERO 学习 —— (9) 应用开发Demo之工程创建

介绍

本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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值