Blazor 初体验-----快速搭建文件共享系统

Blazor 这里不多介绍了,请参考微软官方文档

环境:visual studio 2019 v16.4.2    .Netcore 3.1

1、新建Blazor应用

2、删除默认的官方示例,Data以及page.新建文件model和service,以及文件分类页面

3、FileInfoData.cs

    public class FileInfoData
    {
        public DateTime Date { get; set; }

        public string Name { get; set; }

        public string FilePath { get; set; }

    }

FileInfoService.cs

    public class FileInfoService
    {
        public Task<FileInfoData[]> GetForecastAsync(string softName)
        {
            return Task.Factory.StartNew(() =>
            {
                List<FileInfoData> fileInfoDatas = new List<FileInfoData>();

                string path = Environment.CurrentDirectory + "//Resouses//" + softName;

                if(!Directory.Exists(path))
                    return fileInfoDatas.ToArray();
                var files = Directory.GetFiles(path);
                foreach (var file in files)
                {
                    FileInfo info = new FileInfo(file);
                    FileInfoData fileInfo = new FileInfoData
                    {
                        Date = info.CreationTime,
                        Name = info.Name,
                        FilePath = $"Resouses/{softName}/{info.Name}"
                    };
                    fileInfoDatas.Add(fileInfo);
                }

                return fileInfoDatas.ToArray();
            });
        }
    }

4、打开startup.cs进行服务依赖注入。

        public void ConfigureServices(IServiceCollection services)
        {
            services.AddRazorPages();
            services.AddServerSideBlazor();
            services.AddSingleton<FileInfoService>();
        }

至此,后端代码已完成。不到10分钟吧。接下来开始前端页面设计。

5、首先修改NavMenu.razor --导航菜单名称和链接

<div class="top-row pl-4 navbar navbar-dark">
    <a class="navbar-brand" href="">文件管理</a>
    <button class="navbar-toggler" @onclick="ToggleNavMenu">
        <span class="navbar-toggler-icon"></span>
    </button>
</div>

    <div class="@NavMenuCssClass" @onclick="ToggleNavMenu">
             <ul class="nav flex-column">
                 <li class="nav-item px-3">
                     <NavLink class="nav-link" href="/" Match="NavLinkMatch.All">
                         <span class="oi oi-home" aria-hidden="true"></span> 开发类
                     </NavLink>
                 </li>
                 <li class="nav-item px-3">
                     <NavLink class="nav-link" href="office">
                         <span class="oi oi-plus" aria-hidden="true"></span> 办公类
                     </NavLink>
                 </li>
                 <li class="nav-item px-3">
                     <NavLink class="nav-link" href="system">
                         <span class="oi oi-list-rich" aria-hidden="true"></span>系统类
                     </NavLink>
                 </li>
                 <li class="nav-item px-3">
                     <NavLink class="nav-link" href="tool">
                         <span class="oi oi-home" aria-hidden="true"></span> 工具类
                     </NavLink>
                 </li>
             </ul>
         </div>

@code {
    private bool collapseNavMenu = true;

    private string NavMenuCssClass => collapseNavMenu ? "collapse" : null;

    private void ToggleNavMenu()
    {
        collapseNavMenu = !collapseNavMenu;
    }
}

6、编写index.razor默认主页,这里默认页面为开发类文件列表

接下来其他页面和此页面类似。就页面名称和目录名称不同。

修改完后可以F5预览

一切正常,可以发布,后进行IIS部署。当然.netcore 是不能直接IIS部署的,需要下载服务运行时:Windows Hosting Bundle

最新下载链接:https://dotnet.microsoft.com/download/dotnet-core/current/runtime

最后直接部署IIS即可,因为我们是文件下载,需要给与guest读取权限以及目标浏览启用。最终效果:

一切下来不用1小时就搞定了,Blazor的确加快了web的开发效率,加上前端可以断点调试,解决问题也更加方便。依稀记得原来webform时,前端javascript 调试全靠 Alert("")的苦逼时代。希望微软继续对Blazor更新维护,也希望将来Blazor把MAUI也能集成进来,让c#全栈开发变得更加容易。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值