ASP.NET 5系列教程 (四):向视图中添加服务和发布应用到公有云

向视图中添加服务

现在,ASP.NET MVC 6支持注入类到视图中,和VC类不同的是,对类是公开的、非嵌套或非抽象并没有限制。在这个例子中,我们创建了一个简单的类,用于统计代办事件、已完成事件和平均优先级的服务。

1.添加命名为服务的文件夹,在该文件夹下添加名称为StatisticsService.cs的类:

StatisticsService类代码设计如下:

使用 System.Linq的;
使用 System.Threading.Tasks;
使用 TodoList.Models;

命名空间 TodoList.Services
{
  公共  StatisticsService
  {
    私人 只读 ApplicationDbContext分贝;

    公共 StatisticsService(ApplicationDbContext上下文)
    {
      DB =背景;
    }

    公共异步任务<int>的getCount将()
    {
      返回等待Task.FromResult(db.TodoItems.Count());
    }

    公共异步任务<int>的GetCompletedCount()
    {
      返回等待Task.FromResult(
          db.TodoItems.Count(X => x.IsDone == ));
    }

    公共异步任务<  > GetAveragePriority()
    {
      返回等待Task.FromResult(
          db.TodoItems.Average(X =>
翻倍?)x.Priority)?0.0);
    }
  }
}

2.更新索引视图注入代办事项数据,在文件顶部添加以下代码声明注入的服务:

@Inject TodoList.Services.StatisticsService统计

添加标记调用StatisticsService:

<DIV> @ Html.ActionLink(“ 创建新的Todo ”,“ 创建 ”,“ 藤堂 ”)</ DIV>
    </ DIV>
     
    <DIV  =“ COL-MD-4 ”>
        @await Component.InvokeAsync(“ PriorityList ”,4,

      <H3>统计信息</ H3>
      <ul>
        <LI>产品:@await Statistics.GetCount()</ li>
        <LI>完成:@await Statistics.GetCompletedCount()</ li>
        <LI>平均优先级:@await Statistics.GetAveragePriority()</ li>
      </ ul>
    </ DIV>
</ DIV>

 

以下是该文件的完整代码:

@Inject TodoList.Services.StatisticsService统计
@ {
    ViewBag.Title =“ 主页 ”;
}

<DIV  =“ 超大屏幕 ”>
    <H1> ASP.NET vNext </ H1>
</ DIV>

<DIV  =“  ”>
    <DIV  =“ COL-MD-4 ”>
        @ 如果(Model.Count == 0)
        {
            <H4>无待办事项</ H4>
        }
        其他
        {
            <TABLE>
                <TR> <日> TODO </日> <日> </日> </ TR>
                @foreach(VAR待办事项模型)
                {
                    <TR>
                        <TD> @ todo.Title </ TD>
                        <TD>
                            @ Html.ActionLink(“ 详细信息 ”,“ 详细信息 ”,“ 藤堂 ”, {ID = todo.Id})|
                            @ Html.ActionLink(“ 编辑 ”,“ 编辑 ”,“ 藤堂 ”, {ID = todo.Id})|
                            @ Html.ActionLink(“ 删除 ”,“ 删除 ”,“ 藤堂 ”, {ID = todo.Id})
                        </ TD>
                    </ TR>
                }
            </ TABLE>
                            }
        <DIV> @ Html.ActionLink(“ 创建新的Todo ”,“ 创建 ”,“ 藤堂 ”)</ DIV>
    </ DIV>
     
    <DIV  =“ COL-MD-4 ”>
        @await Component.InvokeAsync(“ PriorityList ”,4,

      <H3>统计信息</ H3>
      <ul>
        <LI>产品:@await Statistics.GetCount()</ li>
        <LI>完成:@await Statistics.GetCompletedCount()</ li>
        <LI>平均优先级:@await Statistics.GetAveragePriority()</ li>
      </ ul>
    </ DIV>
</ DIV>

 

3.在Startup.cs文件中注册StatisticsService类 ​​:

//此方法被运行时调用。
公共无效ConfigureServices(IServiceCollection服务)
{
  //加入EF服务服务容器。
  services.AddEntityFramework(结构)
      .AddSqlServer()
      .AddDbContext <ApplicationDbContext>();

  //添加标识服务服务容器。
  services.AddDefaultIdentity <ApplicationDbContext,ApplicationUser,IdentityRole>(配置);

  //添加MVC服务服务容器。
  services.AddMvc();

  services.AddTransient <TodoList.Services.StatisticsService>();
}

以下是效果图:

ASP.NET 5系列教程 (四):向视图中添加服务和发布应用到公有云

应用发布到公有

发布应用到公有云,你需要申请微软Azure帐号,如果没有,可以通过以下链接注册:**您的MSDN订阅的好处注册一个免费试用

1.右键点击TodoList的工程> 发布

ASP.NET 5系列教程 (四):向视图中添加服务和发布应用到公有云

2.在发布对话框中,点击微软Azure网站并登陆公有云帐号。

ASP.NET 5系列教程 (四):向视图中添加服务和发布应用到公有云

3.点击新建。

ASP.NET 5系列教程 (四):向视图中添加服务和发布应用到公有云

4.输入网站名称和region。如果你之前没有创建过数据服务器,需要新建,否则可以使用原有的数据库服务器。

ASP.NET 5系列教程 (四):向视图中添加服务和发布应用到公有云
数据库服务器是一个宝贵的资源。最好使用现有服务器进行测试和开发。然而由于没有密码校验机制,密码输入错误时不会有错误提示,只有在应用实际访问数据库时才会报错。

ASP.NET 5系列教程 (四):向视图中添加服务和发布应用到公有云

5.在连接标签中点击> 下一步。

ASP.NET 5系列教程 (四):向视图中添加服务和发布应用到公有云

6.在设置标签中,选择KRE版本。

ASP.NET 5系列教程 (四):向视图中添加服务和发布应用到公有云

7.点击发布。

 

8.好了,至此你的应用就发布到公有云了,以下是效果图。

ASP.NET 5系列教程 (四):向视图中添加服务和发布应用到公有云

原文链接:http://www.asp.net/vnext/overview/aspnet-vnext/vc#inj

以上内容,介绍了如何向视图中添加服务和发布应用到公有云中,大家可以将这些知识运用到实际开发中。开发时还可以借助一些工具。ComponentOne Studio for ASP.NET 是ASP.NET平台上的一整套完备的开发工具包,用于在各种浏览器中创建和设计具有现代风格的Web应用程序。

系列文章目录: