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

本文介绍如何在ASP.NET MVC6中向视图添加服务,包括创建统计服务类、视图中注入服务及调用方法,并演示了如何将应用发布到微软Azure公有云。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

向视图中添加服务

现在,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>();
}

以下是效果图:

图片

应用发布到公有

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

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

图片

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

图片

3.点击新建。

图片

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

图片
数据库服务器是一个宝贵的资源。最好使用现有服务器进行测试和开发。然而由于没有密码校验机制,密码输入错误时不会有错误提示,只有在应用实际访问数据库时才会报错。

图片

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

图片

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

图片

7.点击发布。

 

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

图片

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

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

系列文章目录:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值