久久久精品2019中文字幕神马_欧美亚洲一区三区_欧美大人香蕉在线_精品88久久久久88久久久_中文字幕一区二区三区在线播放 _精品国产一区二区三区久久影院_欧洲av在线精品_粉嫩av一区二区三区_亚洲欧美一区二区三区极速播放_国产亚洲精品久久

首頁 > 動漫

小試Blazor——實現Ant Design Blazor動態表單-天天快看點

來源:博客園 時間:2023-06-25 07:05:53

前言

最近想了解下Blazor,于是嘗試使用Blazor寫一個簡單的低代碼框架,于是就采用了Ant Design Blazor作為組件庫

低代碼框架在表現層的第一步則是動態表單,需要將設計時的結構渲染成運行時的表單,本次主要實現動態表單,相關數據接口都以返回固定數據的形式實現


【資料圖】

實現

1.項目準備

先通過命令創建一個Ant Design Blazor項目,并加入到空的解決方案當中:

dotnet new antdesign -o LowCode.Web -ho server

由于我們需要寫一些API接口,所以在Startup類中加入控制器相關的代碼:

public void ConfigureServices(IServiceCollection services)        {            services.AddRazorPages();            services.AddControllers();//添加控制器            services.AddEndpointsApiExplorer();            services.AddServerSideBlazor();            services.AddAntDesign();            services.AddScoped(sp => new HttpClient            {                BaseAddress = new Uri(sp.GetService().BaseUri)            });            services.Configure(Configuration.GetSection("ProSettings"));        }        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)        {            if (env.IsDevelopment())            {                app.UseDeveloperExceptionPage();            }            else            {                app.UseExceptionHandler("/Error");                // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.                app.UseHsts();            }            app.UseHttpsRedirection();            app.UseStaticFiles();                        app.UseRouting();                        app.UseEndpoints(endpoints =>            {                endpoints.MapBlazorHub();                endpoints.MapFallbackToPage("/_Host");                endpoints.MapControllers();//配置控制器            });        }

2.菜單接口

在項目中新增Services文件夾,添加MenuServices類并填入固定數據,并在Startup類中注冊:

public class MenuService    {        ///         /// 獲取左側導航數據        ///         ///         public virtual MenuDataItem[] GetMenuData()        {            return new MenuDataItem[]            {                new MenuDataItem                {                    Path="/",                    Name="測試模塊",                    Key="Test",                    Icon="smile",                    Children=new MenuDataItem[]                    {                        new MenuDataItem                        {                            Path="/StdForm",                            Name="動態表單",                            Key="Form",                            Icon="plus-square"                        }                    }                }            };        }    }

修改BaseicLayout.razor中@code部分,將_menuData改為從MenuService中獲取:

private MenuDataItem[] _menuData ;    [Inject] public MenuService MenuService { get; set; }    protected override async Task OnInitializedAsync()    {        await base.OnInitializedAsync();        _menuData = MenuService.GetMenuData();    }

3.表單組件接口

創建一個簡單的表單與組件的Model:

錄入控件Input:

public class Input     {        public string Name { get; set; }        public string Value { get; set; }    }

標準表單StandardFormModel:

public class StandardFormModel    {        public StandardFormModel()        {            ArrayInput = new List();        }        public List ArrayInput { get; set; }    }

表單API接口FormController:

[Route("api/[controller]/[action]")]    [ApiController]    public class FormController : ControllerBase    {        [HttpGet]        public StandardFormModel GetFormStruc()        {            var result = new StandardFormModel();            result.ArrayInput.AddRange(new List(){                new Input()                {                    Name="賬號"                },                new Input()                {                    Name="密碼"                }            });            return result;        }    }

4.動態表單頁面

在Pages文件夾下創建一個StdForm.razor和StdForm.razor.cs文件

StdForm.razor.cs(注意partial):

public partial class StdForm    {        public StandardFormModel StandardFormModel { get; set; }        public Form StdFormModel { get; set; }        [Inject]        public HttpClient HttpClient { get; set; }             public void Init()        {            var formStruc = HttpClient.GetFromJsonAsync("api/Form/GetFormStruc").Result;            StandardFormModel= formStruc;        }        protected override async Task OnInitializedAsync()        {            Init();            await base.OnInitializedAsync();                    }    }

StdForm.razor:

@page "/StdForm"
@foreach (var item in StandardFormModel.ArrayInput) { @if (item is Model.Component.Input) { } }

運行效果

總結

在Blazor項目中要訪問API接口則需要注入HttpClient類,使用HttpClient請求API接口即可,也可以直接注入Services調用。

目前僅僅是驗證了動態表單的可能性,其他的組件渲染可以根據Ant Design Blazor官方文檔定義模型結構實現

參考文檔:

Blazor官方文檔

Ant Design Blazor官方文檔

Ant Design Blazor倉庫

相關稿件

小試Blazor——實現Ant Design Blazor動態表單-天天快看點

環球快消息!沈陽鐵路局王占柱處長(沈陽鐵路局王占柱)

世界百事通!軒轅劍漢之云圖文完美攻略(軒轅劍漢之云)

世界熱推薦:捷豹路虎中國和捷豹路虎寧波召回車輛 凸輪軸支架機油油道未鉆通

一考生查分 全家一起喊出666 應該可以沖復旦和交大! 環球熱議

方坑嶺影視基地簽約!《老炮敢死隊》后天開機

山東黃金集團推廣開展典型案例解剖式調研、“代入式”調研經驗做法

曝具俊曄回韓國,留大S獨自面對風波,誰是真愛與汪小菲對比明顯

強鏈延鏈贏得發展主動權——訪恒力集團董事長、總裁陳建華|當前播報

杭州蕭山亞運志愿平臺正式啟用

中央氣象臺6月25日06時繼續發布暴雨黃色預警

世界報道:黃浦區將規劃布局“兩點一線” 打造外灘法律服務集聚帶

僅4人踢遍五大聯賽:拉杜喬尤&鮑爾森&約維蒂奇&小克魯伊維特_天天精選

環球報道:我爸是李鋼案件詳情(我爸是李剛造句)

咕嚕小天使完美存檔_咕嚕小天使修改器_快播報

烏蘇市氣象臺發布雷電黃色預警[Ⅲ級/較重] 【2023-06-24】

世界最新:俄媒:俄南部軍區位于羅斯托夫的總部大樓被“瓦格納”成員包圍

ChatGPT 六大勁敵:技術狂熱者、天才 95 后、硅谷人脈王

最新:“十四運”交出高分答卷

谷歌或將其Pixel手機部分生產轉移到印度

Theshy送出關鍵節奏,BLG遠古龍怒斬WBG!Poke陣容下次真別玩了

6-3,6-4!阿爾卡拉斯橫掃繼續前進,生涯首進草地賽事決賽

天天新消息丨沙特阿美與道達爾能源授予110億美元沙特石化設施擴建項目合同

瓦格納創始人被訴武裝叛亂,俄國民警衛隊中央區軍官進入緊急狀態|世界視訊

全球速看:推動品牌建設上臺階

全球通訊!國際范兒,龍舟“劃”向世界!端午節已成全人類共同文化遺產

世界新動態:中國女排遭遇升級版挑戰

百事通!國內首條跨省軌交系統無感換乘線路開通

端午假期交通部門加強多種出行方式聯動 熱點

柿餅不能和什么東西一起吃(柿子餅不能和什么一起吃)-世界快報


久久久精品2019中文字幕神马_欧美亚洲一区三区_欧美大人香蕉在线_精品88久久久久88久久久_中文字幕一区二区三区在线播放 _精品国产一区二区三区久久影院_欧洲av在线精品_粉嫩av一区二区三区_亚洲欧美一区二区三区极速播放_国产亚洲精品久久
亚洲最大成人网4388xx| 欧美国产精品专区| 久久这里只有精品首页| 六月丁香婷婷久久| 日韩精品中文字幕一区| 欧美精品一区二区三区高清aⅴ| 午夜精品福利一区二区蜜股av| 欧美四级电影在线观看| 六月丁香婷婷久久| 亚洲欧美日韩国产手机在线| 欧美在线小视频| 精品无人码麻豆乱码1区2区| 国产欧美日韩三级| 欧美精品亚洲二区| 97超碰欧美中文字幕| 麻豆91在线播放| 91精品国产91久久久久久一区二区 | 欧美三级午夜理伦三级中视频| 亚洲成年人影院| 亚洲视频一区在线观看| 久久综合久久久久88| 欧美一级黄色片| 欧美一卡二卡三卡| 欧美日韩国产一级二级| 免费在线观看精品| 午夜欧美电影在线观看| 亚洲高清免费一级二级三级| 亚洲三级小视频| 国产精品久久影院| 亚洲婷婷综合久久一本伊一区| 精品国产欧美一区二区| 在线观看日韩毛片| 日韩一区二区三区三四区视频在线观看 | 日韩欧美国产一区在线观看| 欧美日韩成人在线| 久久激情综合网| 亚洲一区二区偷拍精品| 日日摸夜夜添夜夜添国产精品| 亚洲国产精品一区二区久久| 一区二区三区四区中文字幕| 亚洲一级二级三级| 狠狠色丁香久久婷婷综合丁香| 国产成人av福利| 色婷婷精品久久二区二区蜜臀av| 91网站黄www| 欧美mv日韩mv国产网站app| 中日韩免费视频中文字幕| 亚洲午夜电影在线观看| 韩国av一区二区三区在线观看| 粉嫩绯色av一区二区在线观看| 成人黄色免费短视频| 欧美精品v国产精品v日韩精品| 久久精品夜夜夜夜久久| 日本在线播放一区二区三区| 成人黄页毛片网站| 国产日韩欧美综合一区| 久久不见久久见中文字幕免费| 波多野结衣在线一区| 国产视频在线观看一区二区三区 | 老司机精品视频在线| 欧美在线一区二区三区| 亚洲精选一二三| 欧美亚洲另类激情小说| 亚洲成人在线免费| 欧美一区二区三区公司| 日韩精品一级二级 | 日韩欧美一区二区三区在线| 欧美性大战久久久久久久蜜臀| 一区二区三区日韩精品视频| 三级精品在线观看| 欧美一级黄色片| 国产麻豆一精品一av一免费| 久久伊人中文字幕| 日本伦理一区二区| 看片的网站亚洲| 亚洲色图第一区| 91精品欧美综合在线观看最新| 精品亚洲欧美一区| 欧美sm美女调教| 成人久久18免费网站麻豆| 国产精品麻豆视频| 国产精品影视网| 调教+趴+乳夹+国产+精品| 久久精品日韩一区二区三区| 色噜噜狠狠色综合中国 | 日韩一区二区三区电影在线观看| 精品一区二区三区久久| 亚洲一区二区在线免费看| 久久精品夜色噜噜亚洲a∨| 91精品1区2区| 亚洲一区二区三区精品在线| 亚洲情趣在线观看| av在线不卡电影| 奇米精品一区二区三区在线观看一| 国产亚洲欧美色| 欧美在线999| 国产精品888| 日韩二区在线观看| 麻豆91在线看| 国产精品国产三级国产aⅴ原创| 色哟哟一区二区| 亚洲男人的天堂一区二区| 久久久五月婷婷| 欧美一区二区女人| 95精品视频在线| 91在线无精精品入口| 成人av中文字幕| 国内外成人在线视频| 中文字幕欧美三区| 日韩精品一区二区三区老鸭窝| 欧美不卡视频一区| 亚洲色图清纯唯美| 免费成人在线视频观看| 日本伊人精品一区二区三区观看方式 | 国产午夜亚洲精品不卡| 亚洲国产精品ⅴa在线观看| 亚洲少妇30p| 国产一区二区三区免费在线观看| 日韩av电影免费观看高清完整版 | 亚洲欧美偷拍卡通变态| 日本aⅴ亚洲精品中文乱码| 东方aⅴ免费观看久久av| 69p69国产精品| 亚洲欧美在线视频| 国产黄色精品网站| 久久久久久久网| 国产福利一区二区三区在线视频| 欧美www视频| 久草在线在线精品观看| 91精品在线一区二区| 亚洲mv大片欧洲mv大片精品| 成人激情免费视频| 亚洲欧美国产毛片在线| jlzzjlzz亚洲女人18| 有码一区二区三区| 欧美精品成人一区二区三区四区| 亚洲欧美日韩在线不卡| 欧美精品日韩精品| 久久99久久精品| 亚洲精选一二三| 久久人人爽人人爽| k8久久久一区二区三区| 亚洲综合视频网| 久久新电视剧免费观看| 色综合久久久久网| 国产aⅴ综合色| 亚洲1区2区3区视频| 亚洲欧洲国产日本综合| 91精品国产福利| 欧美剧情电影在线观看完整版免费励志电影 | 亚洲一二三区在线观看| 欧美一三区三区四区免费在线看| 成人美女视频在线看| 一区在线观看视频| 久久久久久久综合日本| 欧美日韩精品电影| 国产成人av一区二区三区在线| 亚洲精品乱码久久久久久| 精品国产电影一区二区| 成人免费视频网站在线观看| 日韩成人午夜精品| 亚洲国产日韩在线一区模特| 亚洲综合激情小说| 亚洲丰满少妇videoshd| 国产精品亚洲第一区在线暖暖韩国 | 亚洲视频一区二区在线观看| 久久亚洲一级片| 国产精品无圣光一区二区| 麻豆一区二区在线| 色婷婷综合久色| 欧美一级黄色大片| 精品国产欧美一区二区| 久久免费的精品国产v∧| 中文字幕精品三区| 亚洲va欧美va人人爽| 久久不见久久见免费视频7| 成人av网站在线观看免费| 欧美日韩一级视频| 欧美大片一区二区| 国产日本欧美一区二区| 一区二区三区四区视频精品免费| 一区二区三区电影在线播| 欧美aaaaa成人免费观看视频| 国产.精品.日韩.另类.中文.在线.播放| 国产aⅴ综合色| 精品少妇一区二区三区视频免付费 | 国产一区二区看久久| 欧美日韩中文字幕一区| 久久久精品人体av艺术| 三级亚洲高清视频| 在线一区二区三区四区五区| 久久九九久精品国产免费直播| 亚洲精品免费电影| 国产成人精品免费网站| 精品国产一区二区三区忘忧草 | 在线免费观看成人短视频| 国产精品热久久久久夜色精品三区| 午夜伊人狠狠久久| 欧美日韩一级大片网址| 亚洲精品第1页|